日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Jenkins中使用Git和Maven之多個(gè)項(xiàng)目

1.應(yīng)用Aggregation管理多個(gè)子項(xiàng)目

成都創(chuàng)新互聯(lián)公司成立10年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、域名申請、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對于網(wǎng)站建設(shè)都非常重要,成都創(chuàng)新互聯(lián)公司通過對建站技術(shù)性的掌握、對創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

Maven中有一個(gè)Aggregation(聚合),可以將多個(gè)項(xiàng)目作為模塊添加到一個(gè)pom.xml中,然后告訴Jenkins這個(gè)頂層pom.xml,就可以自動(dòng)從Git中拿出這些項(xiàng)目的源代碼,并build所有的子項(xiàng)目和運(yùn)行相應(yīng)的測試程序。我這里使用的是TestNG。

比如我有兩個(gè)maven項(xiàng)目client和email_sender,我希望一次編譯并測試,在這兩個(gè)項(xiàng)目文件夾之上的目錄上添加一個(gè)pom.xml,內(nèi)容如下:

 
 
 
  1.  
  2.   4.0.0  
  3.  
  4.   com.kaimei.datacenter  
  5.   cml  
  6.   2.0  
  7.   pom  
  8.  
  9.     
  10.     client  
  11.     email_sender  
  12.     
  13.  

然后只要告訴Jenkins中這個(gè)pom.xml的路徑即可。點(diǎn)擊build now進(jìn)行測試,可以看到兩個(gè)子項(xiàng)目都已經(jīng)被下載源代碼和編譯,運(yùn)行了TestNG的測試程序。

注意module名稱應(yīng)該是子項(xiàng)目的目錄名。

2.多個(gè)項(xiàng)目之間的依賴關(guān)系管理

client和email_sender項(xiàng)目在上例中沒有關(guān)聯(lián)關(guān)系,為了演示持續(xù)集成在依賴樹的build管理,現(xiàn)在建立一個(gè)新的maven項(xiàng)目名叫mongo_utility,這個(gè)項(xiàng)目提供了一個(gè)類DBManager封裝了MongoDB的連接,代碼來源于我的另一篇文章:http://blog.csdn.net/sheismylife/article/details/7090526

client項(xiàng)目和email_sender項(xiàng)目都通過DBManager類來和MongoDB建立連接。因此它們的pom.xml中都有這一段:

 
 
 
  1.  
  2.   com.kaimei.datacenter 
  3.   mongo_utility 
  4.   1.0        
  5.  

build成功。仔細(xì)看Console Output,Jenkins的行為和直接使用mvn clean compile不太一樣。Jenkins會(huì)將mongo_utility的源代碼取出來,然后重新編譯,安裝到本地倉庫,然后再編譯其他兩個(gè)工程。如果直接敲mvn clean compile的話,mongo_utility-1.0.jar會(huì)直接從私服上下載然后安裝,不會(huì)編譯。

3.多個(gè)項(xiàng)目共享相同的設(shè)置

client,email_sender和mongo_utility三個(gè)項(xiàng)目都用到了mongodb java library,為了便于管理,沒有必要讓它們各自的pom.xml中都定義相同的dependency。Maven將每個(gè)項(xiàng)目的pom.xml看作一個(gè)工程對象,通過繼承可以讓它們共享同一個(gè)配置。

在頂層的pom.xml中添加mongodb依賴:

 
 
 
  1.  
  2.    
  3.     org.mongodb 
  4.     mongo-java-driver 
  5.     2.7.2 
  6.    
  7.  

然后在client,mongo_utility和email_sender項(xiàng)目的pom.xml中分別刪除上面的依賴,并添加如下配置:

 
 
 
  1.  
  2.   com.kaimei.datacenter 
  3.   cml 
  4.   1.0 
  5.   ../pom.xml 
  6.  

然后測試,大功告成。

4.模塊部署到nexus服務(wù)器上

如果想將某個(gè)模塊項(xiàng)目比如這里的mongo_utility項(xiàng)目部署到nexus服務(wù)器上,需要調(diào)整頂層目錄的pom.xml,加上下面的配置:

 
 
 
  1.  
  2.    
  3.     sheismylife 
  4.     http://S1:8081/nexus/content/repositories/sheismylife 
  5.    
  6.  

但是這樣三個(gè)模塊項(xiàng)目都自動(dòng)繼承了deploy功能。其實(shí)我只想mongo-utility模塊部署到nexus上,暫時(shí)把問題放在這里吧。

然后在頂層目錄上執(zhí)行mvn clean deploy,一切順利。將代碼提交到git倉庫中,然后修改Jenkins的項(xiàng)目配置頁面,添加clean deploy命令。

點(diǎn)擊Build Now按鈕,看看結(jié)果,一切OK.值得一提的是,如果你通過mvn命令行執(zhí)行正確,而通過Jenkins執(zhí)行錯(cuò)誤,重新啟動(dòng)一下Jenkins服務(wù),或許能解決。我已經(jīng)碰到幾次了,似乎Jenkins有bug.

5.通過Jenkins將web項(xiàng)目部署到Glassfish或者Tomcat

基本做法還是通過Maven項(xiàng)目的plugin來完成部署。有一個(gè)問題是如果web項(xiàng)目和其他幾個(gè)項(xiàng)目都作為一個(gè)大項(xiàng)目的模塊被聚合在一起,而且都繼承某個(gè)parent pom.xml,那么如何用一個(gè)Maven命令就能編譯所有的模塊,部署到nexus私服,而且將web項(xiàng)目發(fā)布到Glassfish或者Tomcat上。還正在研究,希望能夠夠通過Maven來實(shí)現(xiàn)這個(gè)功能。

6.一個(gè)Jenkins上的多個(gè)project之間的順序執(zhí)行

這個(gè)很簡單,Jenkins的project配置里面可以設(shè)置在某個(gè)project之后build,或者在本project build之后build other project.

7.多個(gè)Jenkins之間的遠(yuǎn)程調(diào)用

S1上的Jenkins A調(diào)用某個(gè)shell腳本,比如curl http://S2/job/test/build

S2上的Jenkins B的test project就會(huì)被觸發(fā)

原文鏈接:http://blog.csdn.net/sheismylife/article/details/7214683

【編輯推薦】

  1. 探究Java初始化的過程
  2. Java集合框架的知識總結(jié)
  3. Java與F#的并行程序處理對比
  4. Java并發(fā)編程之同步互斥問題
  5. Java中String.format的用法

文章題目:Jenkins中使用Git和Maven之多個(gè)項(xiàng)目
網(wǎng)站網(wǎng)址:http://m.5511xx.com/article/dhdeseo.html