Maven Dependency Version:依赖版本自动升级

之前介绍过Maven的依赖调节机制。

依赖调节是为了解决版本不一致的问题(multiple versions),并采取就近原则(nearest definition)。

举例来说,A项目通过依赖传递依赖了两个版本的D:

A -> B -> C -> ( D 2.0 ) ,

A -> E -> ( D 1.0 )
复制代码

那么最终A依赖的D的version将会是1.0,因为1.0对应的层级更少,也就是更近。

除了我们常用的 <version>1.1.0</version> ,在声明依赖版本的时候,可以通过表达式灵活地配置版本号。

例如配置jar包x的 <version> 标签支持如下几种语法:

1.0: 推荐依赖版本,此版本号可能会被覆盖。
[1.0]: 强制依赖此版本。
复制代码

还可以控制依赖的版本范围:

(,1.0]: x <= 1.0
[1.2,1.3]: 1.2 <= x <= 1.3
[1.0,2.0): 1.0 <= x < 2.0
[1.5,): x >= 1.5
复制代码

同时声明多个版本范围也是可以的,只要用逗号分隔即可:

(,1.0],[1.2,): x <= 1.0 或者 x >= 1.2 
复制代码

当你不希望依赖某个版本的时候,可以声明为:

(,1.1),(1.1,)
复制代码

举例来说,你想依赖Apache的commons-math3的最新稳定版,而且不想每次有了新的版本手动去升级pom.xml,可以使用如下 <version> 配置:

<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-math3</artifactId>
	<version>[3.+,)</version>
</dependency>
复制代码

编译项目,你会看到项目中依赖的版本为当前(2019/03/04)最新的正式版: 3.6.1

当然,这么做是有风险的,因为自动升级版本可能引入未知的修改。

除非你信任这个项目的发布者,相信其发布的新版本都是向下兼容的,这样才能保证自动升级到最新版本以后不会出问题。

详细用法参考Maven官方文档 Dependency Version Requirement Specification

Maven Dependency Version:依赖版本自动升级

原文 

https://juejin.im/post/5c7d0e7c6fb9a04a01650f9d

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Maven Dependency Version:依赖版本自动升级

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址