(一) 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>dev</id><properties><vesion-suffix>-SNAPSHOT</vesion-suffix></properties></profile><profile><id>prod</id><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