Как мне полностью загрузить среду Grails? - PullRequest
0 голосов
/ 30 мая 2009

У меня есть включенный скрипт grails, который я нашел в каком-то случайном месте в Интернете, и он отлично работает для запуска скриптов в env-загрузчике. Единственное, чего он не делает - это запускает мои conf/*Bootstrap.groovy скрипты, как когда я запускаю app-приложение.

Есть ли другая функция, такая как loadApp() и configureApp(), которая будет делать это для меня?

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()
    }
}

1 Ответ

1 голос
/ 03 июня 2009

Да, попробуйте

новый BootStrap (). Init ()

...