JPackage和Groovy

km0tfn4u  于 2023-10-15  发布在  其他
关注(0)|答案(2)|浏览(166)

我想使用JLink / JPackage来创建我开发的一个小型Groovy应用程序的可执行版本。在这个应用程序中没有元编程,我只是使用了基本的Groovy,Swing和Awt。除了java.Base和java.Desktop,我找不到在JPackage命令行中包含Groovy库所需的模块。
我使用JDeps尝试识别Groovy依赖项,但它找不到任何依赖项(我不是JDepsMaven,我可能漏掉了一些参数)。
任何帮助/链接/参考/例子将不胜感激。先谢了。BR,Erix.

kq4fsx7k

kq4fsx7k1#

我最终能够使用JPackage将Groovy应用程序打包为安装程序。我找到的唯一解决方案是将所有Groovy jar复制到与app.jar相同的lib文件夹中,然后逐个删除它们。我最终得到了groovy4.0.9.jar和另一个(groovydataeutil). jar。
我将询问groovy开发社区,他们是否打算“模块化”Groovy,因为现在识别哪些jar包含我们使用的特性的过程真的不容易。再次感谢您的帮助。埃里克斯。
顺便说一下,JPackage依赖于Wix3(不支持Wix 4.0),而Wix3又依赖于一个非常旧的.NET框架版本。他们也应该升级他们的东西。

waxmsbnn

waxmsbnn2#

我有一个jar文件,当我运行jdeps时,我会得到这样的结果:

$ jdeps build/libs/nrcs-1.0.0.jar
com.example.nrcs    -> java.lang.ref                   java.base
com.example.nrcs    -> java.util                       java.base
com.example.nrcs    -> org.codehaus.groovy.reflection  not found
com.example.nrcs    -> org.codehaus.groovy.runtime     not found
....

前两行表示我需要来自JRE的java.base,另外两行是不源自JRE的依赖项,因为它们来自groovy-all.jar,也需要打包到我的jar中。我的jar不是一个uber/shadowjar,所以它不包含所需的jar,这可能就是为什么jdeps不能显示origin,因此'not found'。
注意:Java模块来自版本9,所以如果你使用的是用java 8或更早版本编译的包,jdeps不能帮助你解决依赖关系。

相关问题