Maven Jar插件和Maven Source插件有什么区别?

时间:2018-01-07 13:36:50

标签: java eclipse maven plugins jar

我正在阅读有关如何使用Maven创建jar文件的内容,但我看到了一些使用Maven Source Plugin的pom.xml文件以及其他使用Maven Jar插件的文件。

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

  

Apache Maven JAR插件   
这个插件提供了构建jar的能力。如果您想签名罐子,请使用Maven Jarsigner插件。


  

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


阅读这些描述后,我对使用其中一个插件或其他插件时存在疑问,以及有什么不同或有什么不同,因为我明白两者都是同样的事情。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

maven jar插件

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

maven源插件

源插件使用项目源代码创建一个JAR文件。它定义了五个目标:聚合,罐,测试罐,无叉罐和测试无叉罐。源插件的所有这五个目标将在默认生命周期的打包阶段下运行。

与我们之前讨论的任何插件不同,如果要使用Maven默认生命周期执行源插件,则必须在项目POM文件中对其进行定义,如下所示。超级POM文件未定义源插件。它必须在您的Maven项目本身之内

有什么区别

均创建JAR文件;但是,jar插件从二进制工件创建一个JAR文件,而源插件从源代码创建一个JAR文件。小型开源项目使用这种方法来分发相应的源代码以及二进制工件。