国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Jenkins中使用Git和Maven之多個項目

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

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

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

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

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  2.   <modelVersion>4.0.0</modelVersion> 
  3.  
  4.   <groupId>com.kaimei.datacenter</groupId> 
  5.   <artifactId>cml</artifactId> 
  6.   <version>2.0</version> 
  7.   <packaging>pom</packaging> 
  8.  
  9.   <modules> 
  10.     <module>client</module> 
  11.     <module>email_sender</module> 
  12.   </modules> 
  13. </project> 

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

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

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

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

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

  1. <dependency> 
  2.   <groupId>com.kaimei.datacenter</groupId> 
  3.   <artifactId>mongo_utility</artifactId> 
  4.   <version>1.0</version>        
  5. </dependency> 

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

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

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

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

  1. <dependencies> 
  2.   <dependency> 
  3.     <groupId>org.mongodb</groupId> 
  4.     <artifactId>mongo-java-driver</artifactId> 
  5.     <version>2.7.2</version> 
  6.   </dependency> 
  7. </dependencies> 

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

  1. <parent> 
  2.   <groupId>com.kaimei.datacenter</groupId> 
  3.   <artifactId>cml</artifactId> 
  4.   <version>1.0</version><!-- or whatever version you use --> 
  5.   <relativePath>../pom.xml</relativePath> 
  6. </parent> 

然后測試,大功告成。

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

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

  1. <distributionManagement> 
  2.   <repository> 
  3.     <id>sheismylife</id> 
  4.     <url>http://S1:8081/nexus/content/repositories/sheismylife</url> 
  5.   </repository> 
  6. </distributionManagement> 

但是這樣三個模塊項目都自動繼承了deploy功能。其實我只想mongo-utility模塊部署到nexus上,暫時把問題放在這里吧。

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

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

5.通過Jenkins將web項目部署到Glassfish或者Tomcat

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

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

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

7.多個Jenkins之間的遠程調(diào)用

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

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

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

【編輯推薦】

  1. Java Bean屬性命名規(guī)范問題分析
  2. Java Socket編程:初識TCP Socket
  3. Java Socket編程:如何識別網(wǎng)絡(luò)主機
  4. Java Socket編程:基本的術(shù)語和概念
  5. Java集合類ArrayList循環(huán)中刪除特定元素
責任編輯:林師授 來源: sheismylife的博客
相關(guān)推薦

2012-03-13 14:33:55

JavaJenkinsgit

2010-05-25 16:39:56

SVN中使用Git

2024-10-06 13:41:25

2010-05-25 16:52:39

SVN中使用Git

2021-07-26 05:21:37

JenkinsAndroid自動化

2014-03-19 10:01:16

Git項目遠端倉庫

2015-08-03 11:45:37

storyboard

2022-02-14 06:35:26

git參數(shù)Jenkins開發(fā)

2021-01-05 20:24:04

Git開源軟件開發(fā)

2009-06-24 17:34:58

使用JSF的經(jīng)驗

2009-07-21 17:27:12

UpdateProgrASP.NET AJA

2020-09-17 06:00:21

Git

2022-10-11 16:53:22

GitLinux

2023-09-25 10:02:00

GitVS Code

2022-06-01 14:35:39

gitjmeter腳本

2023-11-30 09:00:00

TypeScript開發(fā)

2020-10-27 07:31:35

GitGit RevertGit Reset

2018-11-26 09:20:26

GrailsjQueryDataTables

2021-09-02 14:32:25

企業(yè)項目開發(fā)

2015-01-26 09:57:47

GradleMaven Centr
點贊
收藏

51CTO技術(shù)棧公眾號

婷婷六月国产精品久久不卡| 成人免费观看视频在线观看| 蜜桃在线视频| 欧美性猛交一区二区三区精品| 日韩a在线播放| 精品午夜久久福利影院| 久久综合福利| 女人扒开屁股爽桶30分钟| 久久99久久久久久久久久久| 亚洲性猛交xxxxwww| 欧美综合在线播放| 亚洲欧美韩国| 亚洲午夜国产成人av电影男同| aiai在线| 日韩欧美高清在线视频| 自拍偷拍亚洲在线| 羞羞免费视频| 亚洲国产精品一区制服丝袜| 欧美一区二区三区四区视频| 久久综合色一本| 国模套图日韩精品一区二区| 国产精品高潮呻吟| 91欧美精品午夜性色福利在线 | 北条麻妃在线一区| 国产一区二区三区在线观看免费| 欧美美乳视频网站在线观看| 久久精品三级| 亚洲人成影视在线观看| 国产精品亚洲第一 | 日韩第二十一页| 久久国产视频网| 欧美自拍偷拍午夜视频| 欧美一区二区视频在线| 99精品福利视频| 日本不卡在线播放| 国产一区在线观看视频| 精品视频无码一区二区三区| 亚洲视频香蕉人妖| 国产高清免费av在线| 日韩免费观看高清完整版在线观看| 黑人巨大精品欧美一区二区桃花岛| 久久精品91久久香蕉加勒比| 怕怕欧美视频免费大全| 国产一区自拍视频| 99热精品一区二区| 麻豆电影在线观看| 欧美日本一区二区| zzzwww在线看片免费| 国产精品视频麻豆| 国产91视觉| a级影片在线观看| 91精品蜜臀一区二区三区在线| 伊人性伊人情综合网| av网站大全免费| 色综合久久久888| 欧美日本三级| 国产精品99导航| 亚洲国产激情| 国产手机免费视频| 国产精品国产成人国产三级| 日韩电影中文字幕| 国产精品亚洲欧美日韩一区在线| 性色av香蕉一区二区| 国模吧视频一区| 毛片av在线播放| 一区二区三区四区在线免费观看| 超碰在线免费播放| 欧美精品久久久久久久免费观看| 香蕉久久网站| 欧美精品一区二区性色a+v| 亚洲婷婷综合色高清在线| 亚洲成人三级| 性欧美长视频免费观看不卡| 蘑菇福利视频一区播放| 999精品网站| 91精品午夜视频| 国产乱人伦精品一区| 日本中文不卡| 亚洲黄色小视频| 制服丝袜专区在线| 国产日韩欧美中文在线播放| 国产精品一二三四区| 小水嫩精品福利视频导航| 亚洲人成伊人成综合网久久久| 日本久久精品| 国产精品无码一区二区在线| 欧美高清www午色夜在线视频| 西野翔中文久久精品国产| 黑人巨大国产9丨视频| 午夜激情综合网| 日韩精品视频中文字幕| 亚洲高清资源综合久久精品| 亚洲激情男女视频| 国产麻豆一区| 精品一区2区三区| 一区二区三区中文在线观看| 免费在线国产精品| 久久久综合网站| 亚洲第一av| 久久精品国产精品青草色艺| 亚洲人成网站精品片在线观看 | 在线免费av电影| 久久青草福利网站| 国产高清不卡一区二区| 欧美成人xxx| 成人激情电影一区二区| 国产精品色呦呦| 巨胸喷奶水www久久久免费动漫| 蜜桃91精品入口| 欧美羞羞免费网站| 日韩极品一区| 国产特级嫩嫩嫩bbb| www.色综合| 国产老妇另类xxxxx| 羞羞视频在线观看不卡| 成人av免费看| 欧美日韩在线免费观看| 国产欧美高清视频在线| 五月综合激情在线| 久久99精品国产99久久6尤物| 国产精品一级黄| 欧美日韩国产观看视频| 日本一区高清不卡| 91精品国产欧美一区二区18| 亚洲美女一区| 麻豆免费在线观看| 欧美在线视频二区| 97视频热人人精品免费| 99久久国产宗和精品1上映| 国产一区二区三区在线看| 九九国产精品视频| 老色鬼在线视频| 久久观看最新视频| 伦理片一区二区三区| 久久久久久久久久久国产| 久久精品国产一区二区| 日韩精品―中文字幕| 日本一区二区动态图| 天天天干夜夜夜操| 日韩在线视频网站| 日韩午夜av| 波多野结衣在线高清| 日韩精品一区二区三区三区免费 | 你懂的成人av| 九色网友自拍视频手机在线| 成人亲热视频网站| 色中色一区二区| 亚洲精品乱码| 亚洲小说区图片| 女同性恋一区二区| www日韩欧美| 国产精品久久久久久久久免费相片| 超碰97久久国产精品牛牛| 亚洲欧洲xxxx| 国内精品久久久久影院薰衣草| 成人欧美magnet| 国产二区视频在线播放| 欧美有码在线视频| 一本到不卡精品视频在线观看| 欧美专区一区二区三区| 性爽视频在线| 色综合小说天天综合网| 69堂成人精品视频免费| 精品动漫一区二区三区在线观看| 国产成a人亚洲精品| 欧美wwwwww| 波多野结衣在线网站| 亚洲精品国产一区| 欧美裸体xxxx极品少妇| 午夜精品福利一区二区三区蜜桃| 国产真实久久| 日韩欧美精品电影| 男女午夜视频在线观看| 久久综合精品一区| 久久久91精品国产| 亚洲图片自拍偷拍| 日韩国产高清在线| 久久综合偷偷噜噜噜色| 在线国产小视频| 亚洲国产精品久久久久久女王| 久热在线中文字幕色999舞| 亚洲成人综合视频| 久久精品久久精品| 亚洲欧美成人vr| 欧美6一10sex性hd| 99在线欧洲视频| 亚洲欧洲国产精品久久| 91精品国产乱码久久久久久蜜臀 | av中文在线资源库| 成人性生生活性生交12| 91久久精品国产91性色| 亚洲欧美国产精品| 欧美男女视频| 超污网站在线观看| 四虎一区二区| 国产精品人人做人人爽| 亚洲深夜福利在线| 欧美亚洲国产怡红院影院| 久久精品亚洲国产奇米99| 国产麻豆综合|