Maven Dependency Version:依賴版本自動升級

以前介紹過Maven的依賴調節機制html

依賴調節是爲了解決版本不一致的問題(multiple versions),並採起就近原則(nearest definition)。apache

舉例來講,A項目經過依賴傳遞依賴了兩個版本的D:bash

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

A -> E -> ( D 1.0 )
複製代碼

那麼最終A依賴的D的version將會是1.0,由於1.0對應的層級更少,也就是更近。maven

除了咱們經常使用的<version>1.1.0</version>,在聲明依賴版本的時候,能夠經過表達式靈活地配置版本號。ui

例如配置jar包x的<version>標籤支持以下幾種語法:spa

1.0: 推薦依賴版本,此版本號可能會被覆蓋。
[1.0]: 強制依賴此版本。
複製代碼

還能夠控制依賴的版本範圍:rest

(,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
複製代碼

同時聲明多個版本範圍也是能夠的,只要用逗號分隔便可:code

(,1.0],[1.2,): x <= 1.0 或者 x >= 1.2 
複製代碼

當你不但願依賴某個版本的時候,能夠聲明爲:cdn

(,1.1),(1.1,)
複製代碼

舉例來講,你想依賴Apache的commons-math3的最新穩定版,並且不想每次有了新的版本手動去升級pom.xml,能夠使用以下<version>配置:xml

<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

相關文章
相關標籤/搜索