1. 程式人生 > >jenkins,gitlab,nexus,8個坑

jenkins,gitlab,nexus,8個坑

jenkins,gitlab,nexus,坑

jenkins+gitlab+nexus自動部署

坑1

搞了幾天,終於把jenkins+gitlab+nexus自動化部署完成了。nexus是不必要的,當團隊人數不多時,其實jenkins+gitlab就足夠了,一些依賴包,直接通過ssh上傳到jenkins服務對應的maven庫中即可,這個也是我們最快實現的自動化部署架構

坑2

如果是第一次用nexus,建議用2.X版本,新的3.X版本,無論介面上,還是功能上,都不適合初學者

nexus預設庫就可以了

坑3

nexus的預設庫就可以滿足要求了,一般情況下,如果你安裝了2.X版本,那麼幾個預設的庫就夠用了,不用自己再去新建庫,網上一些人,唯恐天下不亂,總是預設的庫都沒有弄好,自己就開始建立庫了。

坑4

release和snapshot的區別,其實從名字上就能看得出來,release就是釋出的版本,snapshot就是半成品,所以nexus預設認為,release只能一次釋出,snapshot可以多次釋出。千萬不要弄混了,也不要把snapshot強制改為release。

坑5

3rdParty,這個庫是可以手工上傳的,與其他的庫不同,這個庫一般都是自己不能編譯的引用,自己能夠編譯的,放到release和snapshot中

坑6

distributemanagerment配置,這個配置對於release和snapshot很關鍵,如果不配置,是無法進行release和snapshot的jar包釋出到nexus的,網上很多文章都沒有強調,pom.xml和settings.xml都要配置,如下配置:

<distributionManagement>  
       	<repository>  
           	<id>releases</id>  
           	<name>ldjr Repository</name>  
           	<url>http://192.168.1.11:8083/nexus/content/repositories/releases/</url>  
        </repository>  
       	<snapshotRepository>  
           	<id>snapshots</id>  
           	<name>Nexus Snapshots Repository</name>
			<uniqueVersion>false</uniqueVersion>
           	<url>http://192.168.1.11:8083/nexus/content/repositories/snapshots/</url>  
        </snapshotRepository>  
</distributionManagement>

坑7

servermirrors 的配置,正常情況下,mirrors只要配置nexus裡那個public就可以了,因為public是個組,預設會自動把central、release、snapshot、3rdparty的庫都進行檢索,千萬不要跟著網上說的,配置好幾個庫,下面是本人的配置:

<server>
	<id>releases</id>  
	<username>admin</username>  
	<password>admin123</password>  
</server>  
<server>  
	<id>snapshots</id>  
	<username>admin</username>  
	<password>admin123</password>  
</server> 

<mirror>
	<id>nexusMirror</id>
	<name>local repos</name>
	<url>http://192.168.1.11:8083/nexus/content/groups/public/</url>
	<mirrorOf>*</mirrorOf>
</mirror>

坑8

找不到jar包的錯誤,碰到這種錯誤,首先排除你的包是否已經上傳到nexus,如果已經上傳,基本就是路徑的問題。jenkins有點傻,一旦編譯的時候找不到這個包,就不會自動重新找,所以在確保包已經上傳到nexus的正確位置以後,一定要把jenkins裡的那個預設的快取

/var/lib/jenkins/.m2/

刪除,這樣jenkins才會認為是第一次編譯,才會再去重新下載,這個問題糾結了很久,搞通了,就沒有問題了。

彩蛋

最後來一張docker部署的配置,當上述問題都解決了以後,就可以進行docker化部署了。需要說明的是,dockerserver需要提前配置,請參見度娘。

docket部署配置