1

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

4

3 回答 3

1

另一个简单的选择是将你的脚本 dockerize(阅读这篇关于如何做的博客https://groovy-lang.gitlab.io/101-scripts/docker/basico-en.html

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

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

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

  • 在 build.gradle 中添加一些任务,类似于这些 https://gitlab.com/snippets/1797638

于 2019-03-03T19:54:33.103 回答
0

如果您想将 Graal 与 Groovy 一起使用,请查看这篇文章: https ://e.printstacktrace.blog/graalvm-and-groovy-how-to-start/

于 2019-03-03T20:49:44.540 回答
0

您将需要:

  • 静态编译你的 groovy 脚本
  • 使args变量在静态编译后可用
final String[] args = getProperty("args") as String[]
  • 为使用 Groovy 反射动态加载/调用的类指定反射配置文件(这可能很有用
  • 为使用 picocli 反射加载/调用的类指定反射配置文件。该picocli-codegen模块提供了一个picocli.codegen.aot.graalvm.ReflectionConfigGenerator生成配置文件的工具。
  • 如果您的脚本有任何@Grape依赖项,您可能需要关闭 Grape 依赖项管理器-Dgroovy.grape.enabled=false并手动将所有依赖项添加到类路径中

信用:我从Szymon Stepniak的这篇文章中获得了大部分这些技巧

于 2019-03-03T21:54:54.577 回答