您好,登錄后才能下訂單哦!
什么是maven快照 更新策略,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
1、為什么會有快照?
沒有快照之前:
A項目依賴于項目B,B每次改動就賦予一個新版本號,然后告訴A我改版本好了啊,每次改動都得告訴,有時忘了就麻煩了。
可以看出沒有快照會帶來“浪費版本號”、溝通成大加大的問題。
有了快照之后:
A項目依賴于項目B,B每次改動都會打上時間戳,A編譯時會檢查B的時間戳,如果晚于本地倉庫B的時間戳,那么就會進行更新,否則不予更新。
可以看出快照省去了溝通成本、版本號成本。
2、快照更新策略
注意,快照并不是每次install就會更新,這取決于更新策略;快照更新策略,有每日更新、永遠檢查更新、從不檢查更新和自定義時間間隔更新,默認是每日更新也就是說一日更新一次,如果想總是更新,那么可以在settings.xml中配置。比如
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
也可以通過命令強制更新,mvn clean install-U
一次針對現有的http服務開發了一個SNAPSHOT版本的調用SDK jar包。QA同學部署到測試環境后,我又更新了一下jar包的內容,此時QA同學再次部署時并沒有拉去到最新的jar包,這個就比較奇怪了。記憶中maven不是每次都從私服去檢查
SNAPSHOT類型的jar包是否有更新嗎?怎么對我就不起作用了呢?原來也是一直這么使用的的,換個公司就不行了?最后通過閱讀官方文檔才發現自己的理解不到位。
答案當然是不想每次有點代碼改動都升級一下版本。
第一次構建的時候會把該庫從遠程倉庫中下載到本地倉庫緩存中,然后根據pom文件的配置不定期檢查該快照版本是否有變更。如果有變更則會重新拉去最新的jar。
1 2 3 4 5 6 7 8 | <repository> <id>myRepository</id> <url>...</url> <snapshots> <enabled>true</enabled> <updatePolicy>更新策略</updatePolicy> </snapshots> </repository> |
更新策略有一下幾種:
always 每次構建都檢查遠程倉庫中該依賴jar包是否有更新
daily 每天檢查一次 (默認策略)
interval:XXX 指定檢查時間間隔,單位是分鐘。
never 從不檢查。該策略就和正式版本的處理規則一樣了。
http://maven.apache.org/ref/3.5.0/maven-settings/settings.html
看完上述內容,你們掌握什么是maven快照 更新策略的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。