我公司的基础设施发生了变化,迫使从 Maven 2.2.1 升级到 maven 3.0.5
我的项目结构是一个包含几个模块的 EAR。EAR 的依赖项存储在它的lib
类路径上的文件夹中,所有模块都可以使用它。当我们有一个由多个模块使用的依赖项时,它被添加为 EAR 的范围compile
和provided
需要它的模块的范围内的依赖项 - 这样文件就不会加倍。
升级后,具有范围的依赖项provided
将被区别对待。它们的传递依赖项被添加到它们模块的 lib 文件夹中。这会导致冲突。
经过一些研究,我找到了一个建议的解决方案 - 将 maven-dependency-plugin 配置为<excludeScope>provided</excludeScope>
during <goal>copy-dependencies</goal>
,但它没有任何改变 - 临时依赖项lib
无论如何都会添加到模块的文件夹中。
我对问题的理解有误吗?maven 2 和 3 之间发生了什么变化导致了这种情况?
问候,扬
麻烦模块中的插件配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeScope>provided</excludeScope>
</configuration>
</execution>
</executions>
</plugin>