Nexus私服(三)

(一) maven中snapshots和releases

  • snapshots快照在maven指的是开发阶段的版本,会频繁的更新,常指在开发测试阶段,一般在pom的版本中声明1.0-SNAPSHOT
  • snapshots快照的引入是为了解决开发阶段依赖的问题。当我们的版本号中不显示声明SNAPSHOT,maven会默认你的是releases稳定版本。一旦你的代码变动,如果版本号不升级,在maven打包不会去更新最新的依赖,这样会造成开发使用的还是旧依赖
  • snapshots快照声明后,maven每次打包不管版本号是否升级都会去仓库获取最新依赖,这也就解决了开发阶段频繁更新代码的问题了
  • releases在maven指的是上线可以使用的稳定的版本,一般在pom的版本中声明1.0

(二) maven配置多环境打包至Nexus私服snapshots和releases

  • pom.xml中加入profiles
<profiles>
        <profile>
            <id>devid>
            <properties>
                <vesion-suffix>-SNAPSHOTvesion-suffix>
            properties>
        profile>
        <profile>
            <id>prodid>
            <properties>
                <vesion-suffix>vesion-suffix>
            properties>
        profile>
profiles>
  • 修改pom.xml中版本号
    <version>1.0${vesion-suffix}version>
  • mvn deploy -P prod 打包至生产环境,即是nexus的maven-releases仓库
  • mvn deploy -P dev 打包至开发环境,即是nexus的maven-snapshots仓库

这里测试注意的是,nexus的maven-releases仓库设置是默认不能重复发布同一个版本的releases。所以测试阶段可以在nexus仓库设置成Deployment Policy:Allow Redeploy。不然重复测试会deploy 400

你可能感兴趣的:(devops,maven,java,开发语言,Nexus,仓库)