问题提出
在Maven项目中,如果需要依赖第三方的包,比如Spring。不同的第三方依赖包可以直接或者间接依赖于Spring,这些Spring的版本各有不同,则在项目中产生的版本的冲突。
BOM价值
BOM是由Maven提供的功能,用以统一间接或者直接依赖的类库版本,强制某个类库使用某一个统一的版本。
使用示例
在Maven的pom.xml中,使用如下:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>4.3.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在maven的pom.xml中无需指定具体的类库版本,直接使用,即默认使用bom中指定的版本:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependencies>
总结
核心的目标还是解决不同spring版本的冲突问题。