1. 程式人生 > >Jenkins中使用Git和Maven之基本配置

Jenkins中使用Git和Maven之基本配置

Jenkins有一些專用術語,請參考下面的連線:

1.通過Jenkins web頁面新增Git plugin

Manage Jenkins->Manage Plugins->Available中選擇Git Plugin安裝,

注意要填寫user name和 email地址,否則日後會碰到git tag的錯誤

2.在Jenkins使用的機器上建立Git使用者所需要的公鑰

具體步驟參考前面Git server文章

但是注意,要將最後生成的.ssh目錄下的公鑰和私鑰檔案複製到/var/lib/jenkins/.ssh目錄下,否則git clone命令會報錯

3.修改jenkins目錄許可權

chmod -R 777 /var/lib/jenkins

4.現在可以通過web頁面建立一個專案Test,然後設定該專案使用Git作為版本管理。

並且設定repository路徑,比如我的:git@S1:cml.git

5.在build選項的pom檔案指定你需要執行的pom.xml路徑

比如我的一個測試工程名叫client,是個maven工程,我設定為client/pom.xml

6.現在可以點選左側的Build now進行測試

一切OK,則沒有錯誤日誌。在Build History中可以看到測試結果,有沒有錯誤。

7.Email傳送設定

在Manage Jenkins->Configure System->Email Notification中,設定SMTP傳送的基本資訊,點選Advanced,可以填寫使用者名稱和密碼。還有一個測試按鈕可以用來發送測試設定是否正確。

同時在Test專案中的Building Settings打勾選中E-mail Notification,點選右邊的問號,會出現幫助文件,說明在四種情況下會發送email,填寫接受email的地址,然後故意將client程式碼修改到不能編譯通過。然後點選Build now按鈕測試一下。果然收到email.

8.檢查程式碼更新並編譯

可以通過Poll SCM來設定定時檢查編譯功能

比如*/5 * * * * 就是每隔5分鐘檢查一次,如果git倉庫中有更新,則執行build操作。

9.使用Maven私服加快下載速度

如我這篇文章所述,用私服可以避免下載過慢問題,也可以繞過公司內部外網限制問題。

Jenkins的.m2目錄路徑在:/var/lib/jenkins/.m2/

首先清空裡面所有的jar包,然後建立settings.xml檔案,並編輯內容如下:

<settings>
  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://S1:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

現在點選build now測試一下,開啟console output,看看命令列輸出結果,如果發現從S1下載jar包,就正確。和不用私服的比較了一下,節省了1分多鐘.