1. 程式人生 > >Jenkins+Maven+Git 自動化構建

Jenkins+Maven+Git 自動化構建

準備環境 JDK1.8、Maven3.5.4、jenkins-2.121、Git。關於JDK安裝和環境變數不講了,自行百度一下。

rpm -ih jenkins-2.121.1-1.1.noarch.rpm


修改vi /etc/init.d/jenkins,把自己的JDK路徑加到後面。


使用service jenkins start 啟動。

安裝Git

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

yum install git (這步有的伺服器已經預設安裝了,注意一下就行)

查詢Git路徑

whereis git 


下載Maven並安裝

在/usr/local中解壓apache-maven-3.5.4,改為了maven(習慣問題)


修改Maven中conf/settings.xml,我把預設路徑改了。在/usr/local/maven中建立repo資料夾


設定環境變數,並讓其生效。不清楚的可以百度

export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH

開啟安裝Jenkins服務的地址


檢視初始密碼 cat /var/lib/jenkins/secrets/initialAdminPassword


確定後,會進入首頁外掛頁面。我比較懶選擇外掛來安裝,直接全部安裝。還是看個人的選擇。



輸入使用者名稱密碼等資訊


系統管理-》全域性工具配置

修改maven預設settings.xml檔案,配置git、jdk、maven後儲存。



安裝外掛




建立一個Maven工程


構建觸發器作用是 當開發人員push程式碼到git上面後,這裡定時或通知觸發自動構建。標紅說明 



點選下面到構造後操作選項 Deploy war/ear to a container



選擇Add Container


WAR/EAR files:輸入war包的相對路徑,如我的war包在新建目錄的target下

context path:輸入用來訪問tomcat的名稱,localhost:8080/spring01

add container:增加容器,一般選tomcat 8X就可以。這裡的username與password需要到tomcat的conf資料夾中的tomcat-users.xml修改。tomcat URL就是你希望把war包部署到的tomcat所在IP地址,最後面不需要再加斜槓/。

tomcat-users.xml中的使用者名稱及密碼預設是註釋掉的,所以需要刪除註釋,也可以直接複製以下程式碼到</tomcat-users>之前。如果只是刪除註釋的話好像部署不會成功,還需要增加manager開頭的三個role才可以。

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui" />
  <role rolename="manager-script" />
  <role rolename="manager-status" />
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="deploy" password="tomcat" roles="manager-gui,manager-script,manager-status" />

然後到tomcat下面webapps/manager/META-INF/context.xml 登出掉紅色部分。因為預設tomcat不可以通過外部ip訪問管理介面。一定要啟動Tomcat,不然等構建等時候會報拒絕連線

<Context antiResourceLocking="false" privileged="true" >
  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

把tomcat配置到賬戶密碼輸入進行,然後選擇這個creadentials

到這裡就配置完成了,點選構建從控制檯看錯誤資訊

12:41:51 [ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:3.0.0 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:3.0.0: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:3.0.0 from/to central (https://repo.maven.apache.org/maven2): /usr/local/maven/repo/org/apache/maven/plugins/maven-clean-plugin/3.0.0/maven-clean-plugin-3.0.0.pom.part.lock (No such file or directory) -> [Help 1]
12:41:51 [ERROR] 
12:41:51 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
12:41:51 [ERROR] Re-run Maven using the -X switch to enable full debug logging.
12:41:51 [ERROR] 
12:41:51 [ERROR] For more information about the errors and possible solutions, please read the following articles:
12:41:51 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException


這個原因是本地maven庫沒有相關依賴包,我們直接把本地下載好到maven庫直接扔/usr/local/maven/repo/中去


重新構建成功


我們檢視一下Tomcat


這裡說明一下,在構建觸發那裡設定了2分鐘去Git上檢視是否有開發人員提交等程式碼更新,如果提交過自動重新構建釋出到Tomcat下面去。在正式環境,我們一般都是通過shell指令碼去操作Tomcat