使用着色jar作为依赖项导致原始项目中的着色

时间:2017-07-12 05:39:43

标签: java maven maven-shade-plugin

我的项目依赖于另一个项目的阴影罐。另一个项目是使用shade插件将一些a.b.c的{​​{1}}包中的所有类重新定位到artifact A version 1

我的项目也使用此shaded.a.b.c。当我构建项目时,我看到artifact A but version 2的导入语句(我希望它来自a.b.c.d并且在artifact A version 2中不存在)在我的项目中已被更改为{{ 1}}。我在原始项目中没有使用着色,但是我看到依赖jar中的着色插件导致了原始项目中的着色。

这是预期的行为吗?有没有办法阻止这种传递着色?

其他项目的Shade插件:

artifact A version 1

1 个答案:

答案 0 :(得分:0)

结果显示artifact A也被定义为项目父pom中的依赖项(而非依赖项管理)。其他项目'正在使用maven进行构建,这是阴影artifact A,这个阴影的工件(仍然不知道为什么)然后被这个项目之后的所有其他子项目使用。

将依赖项移动到父项目中的依赖项管理,并在子项目中定义相应的依赖项来修复它。