<meta charset="utf-8">
我們知道 snapshots 版本是不穩(wěn)定的版本此再,releases是穩(wěn)定的版本颓哮。生產(chǎn)環(huán)境與開發(fā)環(huán)境應(yīng)該使用不同的倉庫來分離届氢。之前說過版本號帶有 -snapshots nexus會自動放入snapshots 倉庫仇奶,反之放入releases两波。
我們只需要開發(fā)環(huán)境打包的時候 帶上 -snapshots 而生產(chǎn)環(huán)境的時候不帶就可以做到兩個環(huán)境的分離。下面來具體說說
1、profiles
maven profiles 的可以定義不同環(huán)境的參數(shù)變量。
一個profile 代表一個環(huán)境食绿。profile 中有一個 properties 參數(shù)是一個自定義。它屬于全局變量公罕,
在其他地方使用時用${version.suffix} 在項(xiàng)目使用時會進(jìn)行替換器紧。
在pom.xml 配置全局變量
這樣我們的我們的版本就隨著 環(huán)境的不同而不同了。
在dev 環(huán)境中 我們的版本是1.21-SNAPSHOTS
在prod環(huán)境中我們的版本是1.2.1
這樣我們的生產(chǎn)環(huán)境和開發(fā)環(huán)境的jar包 就分離開了楼眷。
在打包的時候 可以加上-P profile.id
例如 mvn deploy -P prod 生產(chǎn)環(huán)境
mvn deploy -P dev 開發(fā)環(huán)境
2铲汪、分角色打包
通過profile 我們已經(jīng)可以實(shí)現(xiàn)不同環(huán)境使用不同的倉庫,但是每個人都有打包的權(quán)利依然很難很好的控制版本摩桶,尤其是releases 倉庫桥状。之前我們說過nexus 的權(quán)限控制,這里我們需要將不同環(huán)境的人的打包權(quán)限控制硝清。例如測試的人員打releases 的包 而開發(fā)人員打snapshots 的包辅斟。
這里需要創(chuàng)建兩個賬號 、
一個是開發(fā)人員角色(有snapshots 新增的權(quán)限)
一個是測試人員角色(有releases 新增的權(quán)限)
只有admin 有修改刪除的權(quán)限芦拿。
修改pom.xml其中配置
將要打包到的地址 在profile中配置士飒,
開發(fā)人員 maven setting.xml的配置的是開發(fā)人員的賬號
測試人員 maven setting.xml的配置的是測試人員的賬號
這樣就可以做到不同環(huán)境查邢,不同角色 releases和snapshots的版本控制。
測試人員打包 可以集成在jenkins上
可以參考這篇 https://stackoverflow.com/questions/14694696/jenkins-how-to-deploy-artifacts-to-maven-repo