maven shade插件无法跨多个运行运行

maven shade插件无法跨多个运行运行,maven,maven-shade-plugin,Maven,Maven Shade Plugin,maven shade plugin第一次运行时,它: 使用foobar.jar作为输入 输出foobar-shaded.jar 将foobar.jar复制到original-foobar.jar 将foobar-shaded.jar复制到foobar.jar 这使得maven安装插件能够获取着色JAR文件,每个人都很高兴。不幸的是,第二次运行构建时,maven shade插件现在会将第一次运行的输出作为第二次运行的输入,最终会出现大量错误(例如,类/资源重叠) 修复插件行为的最简单方法是什么,

maven shade plugin
第一次运行时,它:

  • 使用foobar.jar作为输入
  • 输出foobar-shaded.jar
  • 将foobar.jar复制到original-foobar.jar
  • 将foobar-shaded.jar复制到foobar.jar
  • 这使得
    maven安装插件
    能够获取着色JAR文件,每个人都很高兴。不幸的是,第二次运行构建时,
    maven shade插件
    现在会将第一次运行的输出作为第二次运行的输入,最终会出现大量错误(例如,类/资源重叠)


    修复插件行为的最简单方法是什么,这样它就可以在没有
    mvn clean
    步骤的情况下重新运行?

    最简单的解决方法是指示JAR插件运行,即使源文件没有更改。这将覆盖着色JAR,
    maven着色插件
    将做正确的事情:

    <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>
    
    
    org.apache.maven.plugins
    maven jar插件
    默认jar
    真的