如何将picocli groovy grape脚本转换为本机独立应用程序?

如何将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) 将

我用picocli制作了我的第一个groovy CLI应用程序。现在,我希望它可以在客户端机器上不安装任何JVM的情况下使用,也许可以使用GraalVM。 这是一个开源项目:

另一个简单的选择是对脚本进行dockerize(阅读此博客了解如何操作)

如果要构建linux可执行文件,则需要更改项目:

  • 转换为gradle项目(maven也是一个选项,但gradle有很多插件)

  • 将脚本更改为具有tipical main的类(并将其移动到标准目录src/main/groovy/mypackage)

  • 将一些任务添加到build.gradle中,如下所示


如果您想将Graal与Groovy结合使用,请参阅本文: 您需要:

  • 静态编译groovy脚本
  • 使用静态编译后,使
    args
    变量可用
  • 为使用Groovy()的反射动态加载/调用的类指定反射配置文件
  • 为使用picocli反射加载/调用的类指定反射配置文件。使用
    picocli codegen
    模块a
    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[]