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 -->
答案 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拉入项目中。由于用户不希望弹簧核附带的公共日志记录,他们可能想要使用另一个版本。
可能有两个依赖项相互冲突的依赖项,尽管我认为这很少见。通常排除可以谨慎使用。