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 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。
相关文章
相关标签/搜索