我在一个企业Java应用程序中尝试使用Groovy。在应用程序中,Spring被大量使用。我从一个单元测试开始,看看如何初始化GroovyScriptEngine。项目结构有点复杂。我会试着让它变得简单。module1、module2、module3是maven模块。还有module0,它是根模块,是所有模块的父模块。
在JUnit中,我这样命名它:
GroovyScriptEngine groovyScriptEngine = new GroovyScriptEngine("module1/module2/module3/src/main/resources/META-INF/scripts");此字符串参数将传递到GroovyScriptEngine的roots字段
D:/myProjects/module0/module1/module2/module3/src/main/resources/META-INF/scripts。
到目前为止,这不是一个问题。我部署了应用程序。按如下方式定义url参数:
<bean id="groovyScriptEngine" class="groovy.util.GroovyScriptEngine">
<constructor-arg name="url" value="${core.groovy.roots}"/>
</bean>哪里
core.groovy.roots=module1/module2/module3/src/main/resources/META-INF/scripts
在初始化时,我跟踪url参数,它到达相同的位置,如下所示:
D:/servers/tools/apache-tomcat-6.0.32/bin/module1/module2/module3/src/main/resources/META-INF/scripts
我也尝试过将classpath*:/META-INF/scripts赋给相同的参数,但它也不起作用:
D:/servers/tools/apache-tomcat-6.0.32/bin/classpath*:/META-INF/scripts
我怎样才能使引用相对,同时也能使它工作?
谢谢。
发布于 2014-01-18 02:38:54
您可以使用其他GroovyScriptEngine源代码编译Groovy代码,并像使用其他Java类一样使用它,而不是使用Groovy。
当需要动态解释Groovy代码,并且在脚本更改后不需要重新启动应用程序时,GroovyScriptEngine是有意义的。例如,您可以有一个外部脚本源。
https://stackoverflow.com/questions/21192296
复制相似问题