为什么我们需要在pom

时间:2016-01-21 15:50:50

标签: java spring maven pom.xml

Pom.xml有这些元素,我很好奇为什么我们需要从commons-logging中排除spring-core?它是如何运作的?

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.5.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
            </exclusion>
        </exclusions>
    </dependency>
<!-- next is log4j dependencie -->

3 个答案:

答案 0 :(得分:0)

之前我见过并做过类似的事情,原因很简单:

要排除commons-logging库,因为我想改用log4j

因此,您告诉maven不要包含不必要的库,并使用< exclusion >

答案 1 :(得分:0)

您可能在程序中使用的commons-logging版本不同于spring-core 3.0.5.RELEASE定义的版本。检查您的计划的相关性,看看是否还有其他commons-logging

答案 2 :(得分:0)

在上面的示例中,spring-core本身依赖于commons-logging,因此它会将jar拉入项目中。由于用户不希望弹簧核附带的公共日志记录,他们可能想要使用另一个版本。

可能有两个依赖项相互冲突的依赖项,尽管我认为这很少见。通常排除可以谨慎使用。