使用 Gradle 创建可运行的 JAR

2022-08-31 06:46:18

到目前为止,我通过Eclipse“导出...”创建了可运行的JAR文件。功能性,但现在我切换到IntelliJ IDEA和Gradle进行构建自动化。

这里的一些文章建议使用“应用程序”插件,但这并不能完全导致我预期的结果(只是一个JAR,没有启动脚本或类似的东西)。

我怎样才能达到Eclipse与“导出...”相同的结果。对话?


答案 1

可执行 jar 文件只是一个在其清单中包含 Main-Class 条目的 jar 文件。因此,您只需要配置 jar 任务,即可在其清单中添加此条目:

jar {
    manifest {
        attributes 'Main-Class': 'com.foo.bar.MainClass'
    }
}

您可能还需要在清单中添加类路径条目,但这样做的方式相同。

查看 http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html


答案 2

JB Nizet和Jorge_B的答案都是正确的。

在最简单的形式中,使用Gradle创建可执行JAR只是向清单添加适当条目的问题。但是,在类路径上包含需要包含依赖项的情况要多得多,这使得这种方法在实践中变得棘手。

应用程序插件提供了另一种方法;它不是创建可执行的JAR,而是提供:

  • 一个便于直接从构建中轻松运行应用程序的任务run
  • 一个任务,该任务生成一个目录结构,包括构建的JAR,它所依赖的所有JAR,以及一个启动脚本,该脚本将其全部拉到您可以运行的程序中installDist
  • distZip以及创建包含完整应用程序分发的归档(启动脚本和 JAR)的任务distTar

第三种方法是创建一个所谓的“胖JAR”,它是一个可执行的JAR,不仅包括组件的代码,还包括其所有依赖项。有一些不同的插件使用这种方法。我已经包含了一些我所知道的链接;我相信还有更多。


推荐