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