Maven 中 jar 包的 Snapshot 和 Release 版本區別

www.jianshu.com/p/084fd2408…

概念

  • 這兩個概念是用於描述 jar 包,jar 包 提供給其餘系統做爲依賴
  • snapshot 版本表明不穩定、尚處於開發中的版本,即快照版本
  • release 版本表明功能趨於穩定、當前更新中止,能夠用於發行的版本

使用場景

  • 依賴庫中的 jar 包若處於不斷更新,更準確的說是不停 deploy 時,deploy會發布到私服,則使用snapshot
    • 格式:<version>1.0-snapshot</version>
    • 特色
      • 不停更新/deploy 時,版本號1.0不需更改,私服中會自動追加後綴時間爲版本名
      • 其餘系統使用時,會自動load時間最近也即最新的版本
  • 當第三方 jar 包功能肯定時,能夠提供一個release版本
    • 格式:<version>1.0</version>,去掉-snapshot便可
    • 特色
      • 其餘系統使用時,版本號不變,依賴包則不變,不會自動load最新版本
      • 上述有兩個意思
        • 假設第三方對 1.0 version 更新了,但本地有舊的 1.0 version,其餘系統不會更新引入私服中最新的1.0,與snapshot的區別
        • 第三方 升級了2.0,其餘系統必須手動更新依賴的version爲 2.0,不然不能引入最新版本,這也是相對snapshot比較麻煩的地方

依賴包 deploy 設置

step 1緩存

<!-- 項目發佈管理:在依賴包所在項目的 pom 文件添加以下配置 -->
<distributionManagement>
  <repository>
    <id>releases</id> //發佈時,設置的存放 release 版本 jar 包的倉庫地址
    <name>User Project Release</name>
    <url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
  </repository>

  <snapshotRepository>
    <id>snapshots</id>
    <name>User Project SNAPSHOTS</name> //發佈時,設置的存放 snapshot 版本 jar 包的倉庫地址
    <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
  </snapshotRepository>
</distributionManagement>
複製代碼

step 2maven

<!-- jar包 身份信息配置 -->
<groupId>cc.mzone</groupId>
<artifactId>m1</artifactId>
//若是想發佈到snapshot倉庫中,則須要在版本號後加上-SNAPSHOT(注意這裏必須是大寫)
<version>0.1-SNAPSHOT</version> 
<packaging>jar</packaging>
複製代碼

jar包發佈到本地緩存倉庫

  • mvn clean install -DskipTests

deploy 命令

  • mvn clean deploy -DskipTests
  • mvn clean deploy -X -Dmaven.test.skip=true

驗證結果

做者:HelloTrident 連接:https://www.jianshu.com/p/084fd2408d9a 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。
相關文章
相關標籤/搜索