Maven升级2.2.1到3.2.5之后的传递依赖性的差异

时间:2016-04-12 08:59:44

标签: maven dependencies maven-dependency-plugin transitive-dependency

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

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

升级后,范围provided的依赖关系将被区别对待。它们的传递依赖项被添加到其模块的lib文件夹中。这会导致冲突。

经过一些研究后我找到了一个建议的解决方案 - 在<excludeScope>provided</excludeScope>期间将maven-dependency-plugin配置为<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>

0 个答案:

没有答案