假设您有一个以System.exit(...)
调用结束的Groovy脚本,并且您希望在Gradle任务中执行此Groovy脚本。由于System.exit
调用将终止整个JVM,因此您希望在另一个Java进程中运行此脚本(由于System.exit
调用的原因,使用GroovyShell
似乎不是一个选项)。在不使用单独的Groovy安装的groovy
命令的情况下,如何实现这一点呢?
如果这样的东西可能工作,我必须如何替换???
和????
?
javaexec {
classpath = ???
mainClass = ????
args = ['my-script.groovy']
}
[编辑]好吧,下面是一个“最小可重复的例子”,如下面的评论中所提到的,如果这样可以更好地理解这个问题的话:
Groovy脚本:
// file: my-script.groovy
println 'Hello World'
System.exit(0)
Gradle任务(这可能是完全错误的,我不知道如何替换问号):
task runMyScript(type: JavaExec) {
classpath = ???
mainClass = ????
args = ['my-script.groovy']
}
2条答案
按热度按时间m3eecexj1#
如何使用java命令行运行groovy脚本,你可以在groovy shell/batches中检查:
https://github.com/apache/groovy/blob/master/src/bin/groovy.bat#L30
唯一问题是找出groovy-all通常所在的gradle/lib文件夹
我可以直截了当地建议:
或者如上所述使用
javaexec
时,它是:6tdlim6h2#
另一种解决方案似乎是:
将以下内容添加到
build.gradle
:以后用途:
我刚刚在网上看到这个。我真的不明白这到底是在做什么。如果有人能解释一下,那就太好了。TYVMIA