我刚刚注意到我的战争包含woodstox-core-asl-4.4.1.jar
和woodstox-core-5.0.2.jar
。它们是同一个库的两个不同版本,但库更改了groupId和artifactId。此外,我的战争中的两个模块都包含在我的战争中作为传递依赖项。
我知道我可以使用exclusions
删除旧版本的库但在这种情况下我还应该明确地“包含”新版本,以防该模块单独使用(不是另一个包括woodstox-core-5.0.2.jar
)。
我不喜欢这个解决方案。有没有办法声明woodstox-core
是woodstox-core-asl
的别名,以便Maven只包含其中一个广告?
类似的问题影响旧的Spring 2.x,它发布了一体化工件和较小的分离工件。但是我认为最常见的问题是与更改其groupId和/或artifactId的工件相关的问题。
答案 0 :(得分:0)
没有办法做到这一点。 Maven不理解别名的概念。如果确实如此,那将打开通往另一种依赖地狱的大门。
您所描述的内容 - 为所有需要它的依赖项添加<exclusion/>
<dependency/>
,然后为重命名的工件显式添加新的<dependency/>
是唯一的你现在可以做到这一点的方式。