2009-05-30 8 views
0

J'ai le script de grails inclus que j'ai trouvé dans un endroit aléatoire sur internet et ça marche plutôt bien pour lancer des scripts dans un environnement de grails amorcés. La seule chose qu'il ne semble pas faire est de lancer mes scripts conf/*Bootstrap.groovy comme quand je fais l'application.Comment puis-je complètement amorcer un environnement de grails?

Y at-il une autre fonction comme loadApp() et configureApp() qui fera cela pour moi?

import org.codehaus.groovy.grails.support.PersistenceContextInterceptor 

Ant.property(environment: "env") 
grailsHome = Ant.antProject.properties."env.GRAILS_HOME" 

includeTargets << new File("${grailsHome}/scripts/Bootstrap.groovy") 

target('default': "Runs scripts in the test/local directory") { 
    if (!args) { throw new RuntimeException("[fail] This script requires an argument - the script to run.") } 

    depends(configureProxy, packageApp, classpath) 
    classLoader = new URLClassLoader([classesDir.toURI().toURL()] as URL[], rootLoader) 
    Thread.currentThread().setContextClassLoader(classLoader) 
    loadApp() 
    configureApp() 

    def interceptor = null 
    def beanNames = appCtx.getBeanNamesForType(PersistenceContextInterceptor) 
    if (beanNames && beanNames.size() == 1) { 
     interceptor = appCtx.getBean(beanNames[0]) 
    } 
    try { 
     interceptor?.init() 
     new GroovyScriptEngine(Ant.antProject.properties."base.dir", classLoader).run("scripts/${args}.groovy", new Binding(['appCtx':appCtx])) 
     interceptor?.flush() 
    } catch (Exception e) { 
     e.printStackTrace() 
     interceptor?.clear() 
    } finally { 
     interceptor?.destroy() 
    } 
} 

Répondre

1

Oui, essayez

nouvelle (Bootstrap). Initialisation()

+0

ouais .. vous devez le faire dans un script en cours d'exécution dans le même scriptengine .. il a gagné » Je cours juste dans le script gant comme indiqué .. Je viens d'ajouter un Init.groovy qui peut appeler n'importe quel truc bootstrap et je le lance dans la même instance du moteur de script dans lequel je cours le script. merci! – danb