maven3.X学习系列四 releases和snapshots的版本控制

我们知道 snapshots 版本是不稳定的版本,releases是稳定的版本。生产环境与开发环境应该使用不同的仓库来分离。之前说过版本号带有 -snapshots nexus会自动放入snapshots 仓库,反之放入releases。

我们只需要开发环境打包的时候 带上 -snapshots 而生产环境的时候不带就可以做到两个环境的分离。下面来具体说说

1、profiles

maven profiles 的可以定义不同环境的参数变量。

1.png

一个profile 代表一个环境。profile 中有一个 properties 参数是一个自定义。它属于全局变量,

在其他地方使用时用${version.suffix} 在项目使用时会进行替换。

在pom.xml 配置全局变量

1.png

这样我们的我们的版本就随着 环境的不同而不同了。

在dev 环境中 我们的版本是1.21-SNAPSHOTS

在prod环境中我们的版本是1.2.1

这样我们的生产环境和开发环境的jar包 就分离开了。

在打包的时候 可以加上-P profile.id

例如 mvn deploy -P prod 生产环境

mvn deploy -P dev 开发环境

2、分角色打包

通过profile 我们已经可以实现不同环境使用不同的仓库,但是每个人都有打包的权利依然很难很好的控制版本,尤其是releases 仓库。之前我们说过nexus 的权限控制,这里我们需要将不同环境的人的打包权限控制。例如测试的人员打releases 的包 而开发人员打snapshots 的包。

这里需要创建两个账号 、

一个是开发人员角色(有snapshots 新增的权限)

一个是测试人员角色(有releases 新增的权限)

只有admin 有修改删除的权限。

修改pom.xml其中配置

1.png

将要打包到的地址 在profile中配置,

开发人员 maven setting.xml的配置的是开发人员的账号

测试人员 maven setting.xml的配置的是测试人员的账号

这样就可以做到不同环境,不同角色 releases和snapshots的版本控制。

测试人员打包 可以集成在jenkins上

可以参考这篇 https://stackoverflow.com/questions/14694696/jenkins-how-to-deploy-artifacts-to-maven-repo

你可能感兴趣的:(maven3.X学习系列四 releases和snapshots的版本控制)