繁体   English   中英

Gradle:使用依赖库创建不可执行的jar和可执行Shell脚本,并将其作为程序包分发

[英]Gradle: Create a non-executable jar and executable shell script with dependent libraries as a package distribution

我不是为Java程序创建胖可执行jar的忠实拥护者,因为当我有来自同一项目的多个可执行程序时,这会涉及大量开销。

我希望能够创建一个类似库的jar并创建相应的.sh脚本,这些脚本的结构大致如下:

java -cp classpath_libs main_class program_args ...

或其他任何我可以根据需要自定义它的可执行文件(例如: hadoop jar project_jar main_class classpath_libs program_args )。 这是可以实现的吗? 如果是这样,怎么样? 注意,我需要使用单个项目中的不同主类创建多个脚本。

这里的关键要求是能够使用最终完全解析的类路径字符串。

更新:我已经看到了使用应用程序插件的示例,但是它创建了一个带有打包的依赖库的可执行jar。 这不是我想要的。

据我发现,似乎没有插件可以直接处理此问题。 因此,我使用了java-library插件,使用了configurations.runtime类路径值,并创建了必要的脚本和复制任务,以将必要的库复制到必要的目录中。 对于感兴趣的任何人,您也可以尝试在application插件中的distZip选项,其中gradle会创建执行脚本并将必需的库打包在发行版中。 您可以查看脚本的输出,以了解类路径的结构并创建类似的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM