Java 什么';Maven Jar插件和Maven源插件的区别是什么?
我正在阅读关于如何使用Maven创建jar文件的文章,但是我看到一些pom.xml文件使用Maven源插件,而其他文件使用Maven jar插件 在Apache Maven项目页面中,我找到了以下描述: ApacheMavenJAR插件Java 什么';Maven Jar插件和Maven源插件的区别是什么?,java,eclipse,maven,plugins,jar,Java,Eclipse,Maven,Plugins,Jar,我正在阅读关于如何使用Maven创建jar文件的文章,但是我看到一些pom.xml文件使用Maven源插件,而其他文件使用Maven jar插件 在Apache Maven项目页面中,我找到了以下描述: ApacheMavenJAR插件 这个插件提供了构建JAR的功能。如果您喜欢签署JAR,请使用Maven Jarsigner插件 ApacheMaven源插件 源插件创建当前项目源文件的jar存档。默认情况下,jar文件是在项目的目标目录中创建的 阅读这些描述,我对何时使用一个或另一个插件,
这个插件提供了构建JAR的功能。如果您喜欢签署JAR,请使用Maven Jarsigner插件
ApacheMaven源插件
源插件创建当前项目源文件的jar存档。默认情况下,jar文件是在项目的目标目录中创建的
阅读这些描述,我对何时使用一个或另一个插件,以及它们的区别或好处持怀疑态度,因为我知道两者都是一样的。
- 用于构建包含.class文件的jar文件,以便以字节码格式分发应用程序或库
- 用于构建包含源文件(.java文件)的jar文件,以便IDE在调试时显示源代码。此jar文件与包含.class文件的jar文件结合使用
- maven jar插件
jar插件从Maven项目创建一个jar文件。jar插件的jar目标绑定到Maven默认生命周期的包阶段。当您键入mvn clean install时,Maven将执行默认生命周期中的所有阶段,包括安装阶段,安装阶段也包括软件包阶段
maven源插件
源插件使用项目源代码创建一个JAR文件。它定义了五个目标:聚合、jar、测试jar、jar无叉和测试jar无叉。源插件的所有这五个目标都将在默认生命周期的包阶段运行
与我们之前讨论的任何插件不同,如果您希望使用Maven默认生命周期执行源插件,则必须在项目POM文件中定义它,如下所示。超级POM文件没有定义源插件;它必须在Maven项目本身中
有什么区别
两者都创建JAR文件;但是,jar插件从二进制工件创建jar文件,而源插件从源代码创建jar文件。小型开源项目使用这种方法来分发相应的源代码和二进制工件。“源文件的jar存档”=包含*.java(源代码)文件的jar文件,而不是运行java应用程序所需的*.class(字节码)文件。谢谢回答。但是,还有一个疑问,这个源文件的jar存档默认只包含*.java文件?我可以使用
来包含具有其他扩展名的文件,还是在这种情况下使用JAR插件更好?我想是的,但我不知道。到目前为止,我只使用了JAR插件。为什么不试试呢?源插件通常用于创建用于IDE的辅助工件(源文件)。jar插件已经用于jar
(=default)项目,并用于创建主工件。因此,如果应用程序需要额外的文件,jar插件就是最好的选择。考虑源插件作为开发支持插件。