使用Maven+Svn+Hudson持續整合開發流程例項【搭建二】
【說明】使用maven+svn+hudson進行持續整合開發方法
一 : 使用maven管理專案
1 maven主要的配置檔案settings的主要配置介紹
settings檔案的主要配置的解釋:
localRepository: 本地倉庫配置路徑
offline : 是否是離線的,這個一般不用配置,離線的話會無法下載中央倉庫的包
servers: 配置使用者名稱密碼,用來訪問nexus
mirrors:用來訪問其他庫
profiles :個性化配置,需要啟用
2:在pom.xml檔案配置上傳的路徑,例如如下[可以把上傳的路徑和下載路徑寫為同一個]
1) 配置pom檔案
<distributionManagement> <repository> <id>nexus-releases</id> <name>releases</name> <url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url> </repository> </distributionManagement>
2) 執行命令 :mvndeploy
結果如下:
3:配置下載的路徑
1)主要配置檔案:
<repositories> <repository> <id>central</id> <name>Central</name> <url>http://127.0.0.1:8081/nexus/content/repositories/central/</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories>
2) 新增一個依賴會自動下載
此圖為測試了加上一個本地沒有的依賴後會從 私有中央倉庫下載jar包,下載的路徑為pom.xml配置的中央倉庫路徑而非預設路徑
4把普通專案轉化為maven專案的方法:
1)首先eclipse已經安裝了maven的外掛,並且已經配置好了.
2)新建一個空的maven專案
3) 把專案中的java檔案放在maven對應的目錄下
4) 配置 pom.xml檔案,新增依賴,和上傳中央倉庫路徑,從中央倉庫下載jar包的路徑
配置pom.xml依賴
會顯示如下介面,查詢需要的jar即可
二: 使用maven整合nexus 管理中央倉庫
1下載nexus檔案
本例項用的版本時nexus-2.5.1-01-bundle.zip,下載地址可以在官網上下載
2啟動nexus 。先解壓nexus,然後cmd到解壓後的目錄下,啟動服務
[預設的中央倉庫的路徑就是在當前的目錄下]
[Central下載倉庫路徑]:
3 開啟首頁
在右上角登入 admin/admin123會進入到主頁面
4中央倉庫結構
Repositories 是中央倉庫集合,下面分為幾個倉庫,有Releases(釋出版)/Central(中央倉庫)/Snapshots(開發版)等多個倉庫
5 私有倉庫
使用者遠端使用自己建立私有的中央倉庫已在上一章的3說到了,想要使用私有倉庫需要進行一些配置,選中Central,開啟configuration,如下圖所示:
預設 DownloadRemote Indexes 為false,改為true,儲存即可。重新登入並堅持倉庫路徑,發現好多常用的jar包已經被下載
三: 整合hudson持續整合開發
實現了jar包上傳下載管理後,如果是個較大的專案,需要保證專案持續整合開發的話,還需要使用hudson,進行對專案的定時編譯
1 下載hudson ,本例項下載是最新的,可以很容易在官網上下載
hudson-3.0.1.war
2 啟動hudson,預設使用的是8080埠
因為hudson是個jar檔案,所以
Cmd到hudson目錄下
輸入命令
java -jar hudson-3.0.1.war
3 開啟首頁
4 進行系統配置:
只配置兩個地方jdk路徑和maven的路徑,如圖:
下面就可以進行建立新的工程了,在建立工程前,持續開發用到了svn,所以要先進行
SVN的配置
5 SVN配置
Svn主要需要下載三個資源(客戶端,伺服器端,Eclipse的SVN外掛)
6 建立Hudson工程
選擇構建一個自由風格的軟體專案
7 填寫svn路徑
此處需要加上SVN資源路徑: file:///D:/MySVNRepo/mavenT
8 填寫執行週期和maven的執行命令點選儲存
*/10**** 表示每隔10分鐘構建一次
9 點選立即構建,檢視構建結果,編譯成功
點選console可以檢視專案構建的流程
1) 先建立一個工作空間workspace
2) 更新svn的檔案,檢視是否有更新變化,如果有就會下載下來
3) 執行命令mvn XXXX(命令)
4) 返回結果 SUCCESS/FAILURE
如果看的不清楚,請看下面詳細記錄
Started by user anonymous
Updating file:///D:/MySVNRepo/mavenCheck2 revision: 2013-7-17 13:52:26 depth:infinity ignoreExternals: false
U src\main\java\com\check2\CheckMaven2.java
At revision 18
[workspace] $ mvn.bat package
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for propCheck2:mavenCheck2:jar:8.0.0
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: activeio:activeio:jar -> version 1.1 vs 2.0-r118 @ line 35, column 15
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building mavenCheck2 8.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mavenCheck2 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ mavenCheck2 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ mavenCheck2 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ mavenCheck2 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ mavenCheck2 ---
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ mavenCheck2 ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.767s
[INFO] Finished at: Wed Jul 17 13:52:50 CST 2013
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
Finished: SUCCESS