maven-shade-plugin
第一次运行时:
- 使用foobar.jar作为输入
- 输出foobar-shhaded.jar
- 将foobar.jar复制到original-foobar.jar
- 将foobar-shhaded.jar复制到foobar.jar
这允许maven-install-plugin
拾取着色的JAR文件,并且每个人都很高兴。不幸的是,第二次运行构建时,maven-shade-plugin
现在会将第一次运行的输出作为第二次的输入,最终会出现大量错误(例如,类/资源重叠(。
修复插件行为的最简单方法是什么,这样它就可以在没有mvn clean
步骤的情况下重新运行?
最简单的解决方法是指示JAR插件运行,即使源文件没有更改。这将覆盖阴影JAR,maven-shade-plugin
将执行正确的操作:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<configuration>
<forceCreation>true</forceCreation>
</configuration>
</execution>
</executions>
</plugin>