创建一个运行Groovy脚本的Gradle任务的最佳方法是什么?我意识到Gradle构建文件是Groovy,所以我认为可以这样做:
task run << {
Script app = new GroovyShell().parse(new File("examples/foo.groovy"))
// or replace .parse() w/ a .evalulate()?
app.run()
}
如果bar.groovy使用@Grab
注释,甚至做简单的导入。我想创建一个分级任务来处理这个问题,这样我就可以但愿能去重用类路径定义。
移动实例目录到某个地方的src目录中?什么是最佳实践?
发布于 2018-03-15 12:37:25
或者你可以:
new GroovyShell().run(file('somePath'))
发布于 2018-03-15 14:08:09
您可以尝试使用GroovyScriptEngine而不是GroovyShell。我以前使用过@Grab注释。你需要在类路径中使用所有的groovy,groovy-all.jar是不够的。我猜Ivy不是打包在groovy-all.jar中的。这样的事情应该是这样的:
这个脚本在/tmp/HelloWorld.groovy中假设了一个groovy脚本
def pathToFolderOfScript = '/tmp'
def gse = new GroovyScriptEngine([pathToFolderOfScript] as String[])
gse.run('HelloWorld.groovy', new Binding())
https://stackoverflow.com/questions/-100007629
复制相似问题