问题描述
maven-shade-plugin
第一次运行,它是
- 使用foobar.jar作为输入
- 输出foobar-shaded.jar
- 将foobar.jar复制到original-foobar.jar
- 将foobar-shaded.jar复制到foobar.jar
这允许maven-install-plugin
提取阴影的JAR文件,每个人都很高兴。不幸的是,第二次运行构建maven-shade-plugin
现在将第一次运行的输出作为第二次运行的输入,并且最终会出现许多错误(例如,重叠的类/资源)。 / p>
修复插件行为的最简单方法是什么,这样就可以在没有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>