MAVEN釋出固定版本(不需要更改pom更新依賴的方法)

年華是封無效信發表於2014-05-15
接觸Maven有幾年時間了,不得不說,它是個好東西,一旦接觸之後就有種愛不釋手的感覺。
最近在開發中遇到一個疑問,開發階段的依賴中往往更改一小丁點東西都需要升級版本釋出,十分繁瑣。

對此查了很多資料,國內的資料十分有限,看來國內還很少有朋友遇到這個問題,大家應該都是使用升級版本更新依賴的方式。

上了官網查查資料,還真有解決方案。

首先要分清楚Snapshot和Release的區別

maven中的倉庫分為兩種,snapshot快照倉庫和release釋出倉庫。snapshot快照倉庫用於儲存開發過程中的不穩定版本,release正式倉庫則是用來儲存穩定的發行版本。定義一個元件/模組為快照版本,只需要在pom檔案中在該模組的版本號後加上-SNAPSHOT即可(注意這裡必須是大寫),



<groupId>org.quinn</groupId>
<artifactId>accounts</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>


修改setting.xml的釋出部分如下設定


<profile>
<id>dev</id>

<repositories>

<repository>

<id>nexus</id>

<url>http://ip:8081/nexus/content/groups/public</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>

</snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>nexus</id>

<url>http://ip:8081/nexus/content/groups/public</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>

</snapshots>

</pluginRepository>

</pluginRepositories>

</profile>


可以看到我在snapshot下面加了如下設定


<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>


看下maven官方對這個屬性做出的解釋,重點就是updatePolicy屬性


[img]http://dl2.iteye.com/upload/attachment/0097/1477/ec982d23-543e-3bd4-b50e-e66ba0957f0a.jpg[/img]

enabled設定為true

updatePolicy更新snapshot包的頻率,屬性有四個值always(實時更新) daily(每天更新) interval:xxx(隔xxx分鐘更新一次) never(從不更新) 預設為daily

checksumPolicy為warn

如果是使用eclipse開發,整合了maven外掛的,還需要做如下事情。

Window>Preferences>Maven>User Settings>Update Settings

完成以上操作可完成無需更改版本釋出,依賴方也不需要更改pom,只需執行一下mvn clean install 即可完成依賴更新

相關文章