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

<meta charset="utf-8">

我们知道 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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,187评论 19赞 139
  • 简介 概述 Maven 是一个项目管理和整合工具 Maven 为开发者提供了一套完整的构建生命周期框架 Maven...
    闽越布衣阅读 4,587评论 6赞 39
  • maven maven是一个跨平台的项目管理的工具。隶属于Apache下的一个开源项目。主要服务于Java平台的项...
    jwfy阅读 1,120评论 0赞 2
  • Maven概述 Maven定义Maven是一个项目管理和整合,统一管理jar包的工具;Maven为开发者提供了一套...
    THQ的简书阅读 902评论 0赞 0
  • 一、会议主题:团队文化建设经验交流 二、会议时间:2018年3月23日早6:00一7:10 三、参会人员(13人)...
    逗导阅读 521评论 0赞 0

友情链接更多精彩内容