【问题标题】:What's the difference between Maven Jar Plugin and Maven Source Plugin?Maven Jar Plugin 和 Maven Source Plugin 有什么区别?
【发布时间】:2018-06-16 16:27:39
【问题描述】:

我正在阅读有关如何使用 Maven 创建 jar 文件的信息,但我看到一些使用 Maven 源插件的 pom.xml 文件和其他使用 Maven Jar 插件的文件。

在 Apache Maven 项目页面中,我找到了以下描述:

Apache Maven JAR 插件
此插件提供构建 jar 的功能。如果您想对 jar 进行签名,请使用 Maven Jarsigner 插件。


Apache Maven 源插件
Source Plugin 为当前项目的源文件创建一个 jar 存档。默认情况下,jar 文件创建在项目的目标目录中。


阅读这些描述后,我对何时使用一个或另一个插件以及有什么区别或好处感到怀疑,因为我知道两者都做同样的事情。

【问题讨论】:

  • "jar archive of the source files" = 包含 *.java(源代码)文件的 JAR 文件,而不是所需的 *.class(字节码)文件运行 Java 应用程序。
  • 感谢您的回答。但是,还有一个疑问,这个源文件的 jar 存档默认只包含 *.java 文件?我可以使用<includes> 包含具有其他扩展名的文件还是在这种情况下使用 JAR 插件更好?
  • 我猜是这样,但我不知道。到目前为止,我只使用了 JAR 插件。为什么不试试看呢?
  • 源插件通常用于创建用于 IDE 的 辅助 工件(源文件)。 jar 插件已用于jar (=default) 项目,并用于创建主要工件。因此,如果应用程序需要您的其他文件,那么 jar 插件就是您的最佳选择。将源插件视为开发支持插件。

标签: java eclipse maven plugins jar


【解决方案1】:
  • Apache Maven JAR Plugin 用于构建包含 .class 文件的 jar 文件,以便以字节码格式分发应用程序或库。

  • Apache Maven Source Plugin 用于构建包含源文件(.java 文件)的 jar 文件,以便 IDE 在调试时显示源代码。此 jar 文件与包含 .class 文件的 jar 文件结合使用。

【讨论】:

    【解决方案2】:

    ma​​ven jar 插件

    jar 插件从您的 Maven 项目创建一个 JAR 文件。 jar 插件的 jar 目标绑定到 Maven 默认生命周期的打包阶段。当您键入 mvn clean install 时,Maven 将执行默认生命周期中的所有阶段,直到安装阶段(包括安装阶段),其中还包括包阶段。

    ma​​ven 源码插件

    源插件使用项目源代码创建一个 JAR 文件。它定义了五个目标:聚合、jar、test-jar、jar-no-fork 和 test-jar-no-fork。源插件的这五个目标都将在默认生命周期的打包阶段运行。

    与我们之前讨论过的任何插件不同,如果要执行具有 Maven 默认生命周期的源插件,则必须在项目 POM 文件中定义它,如下所示。超级POM文件没有定义源插件;它必须在您的 Maven 项目中

    有什么区别

    两者都创建 JAR 文件;但是,jar 插件从二进制工件创建一个 JAR 文件,而源插件从源代码创建一个 JAR 文件。小型开源项目使用这种方法将相应的源代码与二进制工件一起分发。

    【讨论】:

      猜你喜欢
      • 2014-10-10
      • 1970-01-01
      • 2020-01-01
      • 2019-04-11
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 2015-09-27
      • 2012-08-07
      相关资源
      最近更新 更多