谁能解释在pom.xml中使用和不使用maven插件为maven项目构建jar的区别
我知道这些插件对于在Maven中创建jar文件很有用。
maven-jar-plugin builds jar
maven-assembly-plugin - builds jar with dependencies,
maven-shade-plugin - creates a standalone jar with resolved dependencies and resolves the conflicts between resource files that have the same name across the jars.
但是,我可以通过运行'mvn package'命令创建jar,而无需在pom.xml中使用任何插件。这个jar和使用maven-jar-plugin生成的jar有什么区别。
这是我的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Demo</groupId>
<artifactId>Demo</artifactId>
<name>test</name>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
</project>
答案 0 :(得分:1)
当使用'packaging = jar'时,一个maven项目在引擎盖下使用了'maven-jar-plugin'。假设您遵循Maven标准,这将创建一个jar。因此,您的jar无需自定义。
您可以使用“ maven-jar-plugin”进一步自定义生成的jar,您可以在jar中添加其他文件等。
“ maven-assembly-plugin”允许您使用自定义文件和文件夹来生成tar,zip和其他压缩的工件。
'maven-shade-plugin'允许您创建一个胖jar,其中包含所有必需的3rd party jar和主类。这使您的工件易于部署和执行。