和一个工作的grails应用程序
在现有的grails-application中,有不同的外部脚本(现在只有perl脚本),它们与grails执行异步(使用execute-Method)。
现在我得到了一个GroovyScript,我想以与运行PerlScripts相同的方式运行。
目前脚本在lib-folder中有commons-io-library。它工作正常。
所以我的问题是:如何以平滑整洁的方式从grails中提供带有commons-io-library的groovy脚本?我是否必须在命令中提供通过execute-Method
执行的路径e.g:
groovy -cp=path/to/grailshome/lib.jar scripfile.groovy
如果我将grails应用程序部署到当前生产环境中的tomcat,这将无法正常工作,因为来自grails的libs位于不同的路径中。
将脚本放入grails的src / groovy文件夹中可能会有效,但这不是我想要的方式。该脚本必须是独立的。
我真的被困住了,因为我不熟悉细节和groovy grails的技术细节。
即使是如何实现这一目标的建议和想法也足够了。
我希望你能早点理解这个问题
答案 0 :(得分:1)
这是使用Grapes并放置:
的情况@Grab( 'commons-io:commons-io:2.1' )
在你的groovy脚本的顶部会有帮助吗?
如果您将此作为战争运行,那么这可能有效:
String path = grailsApplication.parentContext
.getResource( 'WEB-INF/lib/commons-io-1.4.jar' )
.file
.absolutePath