1. 程式人生 > >使用Maven+Svn+Hudson持續整合開發流程例項【搭建二】

使用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