Spring Jar依赖优先级

时间:2013-12-12 12:19:40

标签: spring maven

我有一个Spring应用程序(CustomerPort)。在这里我使用一个开源jar(commons-lang。 2.4 )。而我的CustomerPort使用其他模块,如jar,它使用不同的版本“commons-lang。 2.2 ”。

由于另一个模块使用commons-lang。 2.2 ,我的应用程序也会裁判模块opensource jar而不是commons-lang。 2.4

你能告诉我如何在Pom.xml文件中排除commons-lang。 2.2

2 个答案:

答案 0 :(得分:1)

使用<scope>标记来更正这些传递依赖项的范围。有关maven依赖范围的更多信息,请阅读this

答案 1 :(得分:1)

在CustomerPort的pom.xml中,您可以在其中指定对其他jar模块的依赖关系,您可以为commons-lang指定排除项。这将阻止Maven从另一个jar中引入commons-lang传递依赖。

<dependency> 
    <groupId>otherModuleGroupId</groupId>
    <artifactId>otherModuleArtifactId</artifactId>
    <version>otherModuleVersion</version>
    <exclusions>
        <exclusion>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>                   
        </exclusion>
    </exclusions>
</dependency>

通过在CustomerPort中运行mvn dependency:tree来验证其是否做得对。

有关排除传递依赖关系的更多信息here