Actualización: a partir de Grails 1.3.6 uno tiene acceso al dominio completo de los scripts de Gant. De los Grails 1.3.6 release notes:secuencia de comandos única de Grails para llenar la base de datos
Ahora puede ejecutar uno o más scripts de Groovy desde la línea de comandos utilizando el comando run-script, p.
griales run-escritura [ruta-a-script-1] [ruta-a-script-2] ... [ruta-a-script-n]
Esto funciona en torno al tema en los scripts de Gant donde no se puede acceder cómodamente a las clases de aplicación, ya que no están disponibles en el classpath cuando se inician los scripts.
Hola a todos,
Soy nuevo en el uso de Grails (en un proyecto real) y tengo un guión de una sola vez necesito para ejecutar que lee un archivo y luego puebla mi base de datos.
Quería que el script se ejecutara en el contexto de mi aplicación grails, así que utilicé el comando create-script. Ahora entiendo que lo convierte en un guión 'Gant'. La razón de ello es que pensé que me permiten un fácil acceso a todos los griales de dominio buena-dad, de modo que yo sería capaz de hacer algo como esto fácilmente:
Car car = new Car(model: 'bar', brand: 'Ford')
car.save()
Aquí, Car es una de mis clases de dominio y las cadenas 'barra' y 'Ford' que he recuperado de mi archivo.
El inicio de mi guión se parece a esto:
import com.foo.Car
grailsHome = Ant.project.properties."environment.GRAILS_HOME"
includeTargets << new File ("${grailsHome}/scripts/Bootstrap.groovy")
target(main: "a script for storing cars") {
depends(bootstrap, classpath) // code dealing with the file with cars follows
Sorprendentemente, maravilloso me da una java.lang.NoClassDefFoundError: com.foo.Car
cuando ejecuto el script con el comando grails LoadCars
estoy tomando un enfoque equivocado, o hay algo más simple que estoy haciendo mal?
cualquier ayuda se agradece
gracias un montón Ted! –