sec*_*ree 73
maven-jar-plugin
:此插件提供了构建和签名JAR的功能.但它只是编译src/main/java
和下的java文件src/main/resources/
.它不包含依赖项JAR文件.maven-assembly-plugin
:此插件将所有依赖项JAR提取到原始类中并将它们组合在一起.它还可以通过指定主类来构建可执行JAR.它适用于仅具有较少依赖性的项目; 对于具有许多依赖项的大型项目,它将导致Java类名冲突.maven-shade-plugin
:它将所有依赖项打包到一个uber-JAR中.它还可以通过指定主类来构建可执行JAR.此插件特别有用,因为它合并特定文件的内容,而不是通过重定位类来覆盖它们.当存在跨JAR具有相同名称的资源文件并且插件尝试将所有资源文件打包在一起时,则需要这样做.Art*_*eda 21
让我们看看以下命令可以告诉我们什么.
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-jar-plugin
它有3个目标help
,jar
和test-jar
.我相信你最感兴趣的jar
目标,根据描述做到以下几点:
从当前项目构建JAR.
作为旁注,mvn help:effective-pom
在包装设置为的项目上执行jar
,表明此插件已自动配置并在此package
阶段执行.
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这个用途不同.它有8个目标,但其中6个已被弃用.所以除了help
目标之外,我们还有single
目标.
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-assembly-plugin
从程序集描述符组装应用程序包或分发.此目标适用于绑定到生命周期或直接从命令行调用(前提是所有必需的文件在构建开始之前可用,或者由在命令行之前指定的另一个目标生成).
当您想要提供超过项目的工件(JAR,WAR等)时,可以使用程序集插件,但配置会在另一个文件中.
主要目标的描述有点令人失望.
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-shade-plugin
执行着色委托给着色器组件的Mojo.
如果你想生成一个uber-jar,你通常想要使用这个插件,这是一个JAR中的工件,其中包含所有的传递依赖.
基本上,如果你正在构建一个库,你将坚持使用默认的JAR插件.如果你正在构建一个应用程序,你可以考虑使用shade插件,虽然对我来说,它有点快速和肮脏.如果uber-jar不是你的品味,或者发行版不能适合单个JAR(外部配置,本机依赖等),那么你应该去装配插件.
归档时间: |
|
查看次数: |
13874 次 |
最近记录: |