使用maven-shade-plugin时出现多余的警告

时间:2012-01-16 12:58:24

标签: java maven maven-shade-plugin

我正在使用 maven-shade-plugin 作为一个简单的maven项目,该插件成功地将所有依赖项包含到最终的“阴影”jar中。这个过程每次都很有效,并且完全符合我的需要。

当运行“第一”时间(在clean之后)时,插件是安静的并且产生非常少的输出。但是,当重新运行时(上一次构建中没有clean),会有很多警告消息,例如;

[WARNING] We have a duplicate package/a/b/foo.class
[WARNING] We have a duplicate package/c/d/bar.class

这只是警告信息,最终的工件工作正常。

我的问题很简单:如何在不必首先运行clean的情况下安全地解决或抑制这些警告消息?


注意:一个可能的解决方案是转移到 maven-assembly-plugin ,但我不愿意,因为 maven-shade的配置-plugin 非常简单。

1 个答案:

答案 0 :(得分:11)

这是因为它将文件着色为已着色的jar。

第一次在清理后运行包时,它将创建jar。 第二次运行它然后它就不会因为jar已经存在而烦恼。

从阴影插件的角度来看,它不知道它已经被着色,所以它只是尝试再次添加类。

我们可以通过配置jar插件强制maven每次创建jar:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-jar-plugin</artifactId>
   <version>2.4</version>
   <configuration>
     <forceCreation>true</forceCreation>
   </configuration>
</plugin>

这对我有用。无论是那个还是只是干净安装