使用变量进行管理
定义一个版本号的变量
<properties> <spring- work-version>4.3.7.REALEASE</spring- work-version> </properties>
所有spring的jar版本都使用变量来定义版本:
<dependency>
<groupId>org.spring work</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring- work-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.spring work</groupId>
<artifactId>spring-test</artifactId>
<version>${spring- work-version}</version>
<scope>test</scope>
</dependency>使用maven的dependencyManagement管理
单个jar的管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
</dependencyManagement>在引用依赖时,不需要填写版本。
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency>
在一个项目中,这样做的必要性不大,这种机制一般用于maven项目继承,子项目可以直接使用简化的依赖配置,从而确保和父项目版本一致。
这里有一个问题,如果我们配置了:
<dependency> <groupId>org.spring work.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>1.10.4.RELEASE</version> </dependency> <dependency> <groupId>org.spring work</groupId> <artifactId>spring-test</artifactId> <version>4.3.7.RELEASE</version> <scope>test</scope> </dependency>
会发现依赖树中,spring-test是4.3.7,而spring-data-jpa中依赖的其他spring子项目确实4.2.8,这经常会导致一些莫名其妙的问题,比如spring-test异常等等。
这个问题在使用下面的pom来管理时就可以避免了,针对spring-data-jpa项目尤其要注意。
pom管理jar集合的版本
以Spring为例,它包含大量的子项目,为了保持不同子项目的版本一致,官方提供了一个pom专门来管理版本。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.spring work</groupId>
<artifactId>spring- work-bom</artifactId>
<version>4.3.7.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>那么大部分一级项目,都可以直接如下引用依赖了。
<dependency> <groupId>org.spring work</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency>
之所以说大部分,如spring-data下面的子项目是Spring子项目中的一个子集。它提供了自己的pom包。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.spring work.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Hopper-SR4</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>它的版本不同于普通的版本号,如1.11.7.RELEASE这种,而是独立的版本体系,具体版本参见:https://github.com/spring-projects/spring-data-commons/wiki/Release-planning
这个字符串的版本号,实际上又对应了真实的版本号,如:
Hopper-SR4 <-> 1.10.4.RELEASE
具体的版本对应查询前面的文档。
继续阅读与本文标签相同的文章
上一篇 :
eclipse导入本地xsd文件(新手慎入)
下一篇 :
mac中离线安装atom扩展
-
mysql已存在的表增加自增字段
2026-05-16栏目: 教程
-
新建SpringBoot项目pom文件第一行报错 Unknown error
2026-05-16栏目: 教程
-
eclipse 插件
2026-05-16栏目: 教程
-
java8出来都5年了,内部迭代你懂了吗?
2026-05-16栏目: 教程
-
java集合|遍历HashMap的四种方法
2026-05-16栏目: 教程
