我需要制作一个独立的 Groovy 脚本,该脚本不需要编译并且无需安装 Groovy 即可运行。它运行良好,但无法识别除主脚本之外的任何其他脚本。
我的文件夹结构如下:
libs\
groovy-all-2.4.3.jar
ivy-2.4.0.jar
src\
makeRelease.groovy
ReleaseHelper.groovy
我以这种方式从 src 文件夹启动脚本:
java -cp "../libs/*" makeRelease.groovy
makeRelease 看起来像这样:
public class makeRelease {
public static void main(String... args) {
new ReleaseHelper()
...
}
}
运行时,输出如下:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
src\makeRelease.groovy: 5: unable to resolve class ReleaseHelper
如何在此类可移植脚本中包含其他类(驻留在单独的文件中)?
我认为这比你想象的要容易:
libs\
groovy-all-2.4.3.jar
src\
main.groovy
Greeter.groovy
Where main.groovy
public class Main {
public static void main(args) {
println 'Main script starting...'
def greeter = new Greeter()
greeter.sayHello()
}
}
and Greeter.groovy
class Greeter {
def sayHello() {
println 'Hello!'
}
}
只需将包含单独文件中的类的文件夹添加到类路径中即可:
java -cp .;..\libs\groovy-all-2.4.3.jar groovy.ui.GroovyMain main.groovy
上面的结果是:
Main script starting...
Hello!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)