1

我公司的基础设施发生了变化,迫使从 Maven 2.2.1 升级到 maven 3.0.5

我的项目结构是一个包含几个模块的 EAR。EAR 的依赖项存储在它的lib类路径上的文件夹中,所有模块都可以使用它。当我们有一个由多个模块使用的依赖项时,它被添加为 EAR 的范围compileprovided需要它的模块的范围内的依赖项 - 这样文件就不会加倍。

升级后,具有范围的依赖项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>
4

0 回答 0