我有一个带有Picocli的Groovy Cli应用程序。现在,我希望可以在客户端计算机上安装任何JVM,也许可以使用GRAALVM使用。这是针对一个OpenSource项目:https://github.com/kchaitanya863/db2csv
另一个简单的选择是对您的脚本进行扩展(阅读此博客https://groovy-lang.gitlab.io/101-scripts/docker/docker/basico-en。html)
如果要构建Linux可执行文件,则需要更改项目:
-
转换为Gradle项目(Maven也是一种选择,但Gradle有很多插件)
-
将您的脚本更改为具有tipical main的类(并将其移至标准目录SRC/MAIN/GROOVY/MYPACKAGE)
-
添加一些任务build.gradle类似于这些https://gitlab.com/snippets/1797638
您需要:
- 静态编译您的Groovy脚本
- 使
args
变量在
的静态汇编后可用
final String[] args = getProperty("args") as String[]
- 指定使用Groovy反射动态加载/调用类的反射配置文件(这可能很有用)
- 为使用Picocli反射加载/调用的类指定反射配置文件。
picocli-codegen
模块提供了生成配置文件的picocli.codegen.aot.graalvm.ReflectionConfigGenerator
工具。 - 如果您的脚本具有任何
@Grape
依赖关系,则可能需要使用-Dgroovy.grape.enabled=false
关闭葡萄依赖管理器,然后手动将所有依赖项添加到类Pather
信用:我从Szymon Stepniak