Grails:为外部groovy脚本提供库

时间:2012-03-19 12:57:10

标签: grails groovy classpath

我有什么: 使用apache-commons-io库的外部GroovyScript

和一个工作的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的技术细节。

即使是如何实现这一目标的建议和想法也足够了。

我希望你能早点理解这个问题

1 个答案:

答案 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