如何将picocli groovy grape脚本转换为本机独立应用程序?
我用picocli制作了我的第一个groovy CLI应用程序。现在,我希望它可以在客户端机器上不安装任何JVM的情况下使用,也许可以使用GraalVM。 这是一个开源项目:如何将picocli groovy grape脚本转换为本机独立应用程序?,groovy,executable-jar,graalvm,picocli,Groovy,Executable Jar,Graalvm,Picocli,我用picocli制作了我的第一个groovy CLI应用程序。现在,我希望它可以在客户端机器上不安装任何JVM的情况下使用,也许可以使用GraalVM。 这是一个开源项目: 另一个简单的选择是对脚本进行dockerize(阅读此博客了解如何操作) 如果要构建linux可执行文件,则需要更改项目: 转换为gradle项目(maven也是一个选项,但gradle有很多插件) 将脚本更改为具有tipical main的类(并将其移动到标准目录src/main/groovy/mypackage) 将
另一个简单的选择是对脚本进行dockerize(阅读此博客了解如何操作) 如果要构建linux可执行文件,则需要更改项目:
- 转换为gradle项目(maven也是一个选项,但gradle有很多插件)
- 将脚本更改为具有tipical main的类(并将其移动到标准目录src/main/groovy/mypackage)
- 将一些任务添加到build.gradle中,如下所示
- 静态编译groovy脚本
- 使用静态编译后,使
变量可用args
- 为使用Groovy()的反射动态加载/调用的类指定反射配置文件
- 为使用picocli反射加载/调用的类指定反射配置文件。使用
模块apicocli codegen
工具生成配置文件picocli.codegen.aot.graalvm.ReflectionConfigGenerator
- 如果脚本有任何
依赖项,则可能需要使用@Grape
-Dgroovy.Grape.enabled=false关闭Grape依赖项管理器,并手动将所有依赖项添加到类路径
信用证:我从Szymon Stepniak那里得到了大部分提示感谢您在项目中选择picocli。提示:2.0.3非常旧,您可能需要升级到更高版本。目前的最新版本是3.9.5。享受吧!
final String[] args = getProperty("args") as String[]