jenkins教程(基於maven+Git+jdk的簡單搭建)
對於jenkins我已經“垂涎”一年多了,之所以沒有認真地玩一遍,也是因為沒有工作的動力驅動。正好,最近團隊在搭建敏捷工具,自然而然就由我來研究一波啦。
1 下載軟體
選擇 Long-term Support (LTS)的版本,可選擇下載war包直接部署在tomcat,也可以選擇linux具體版本,這樣在linux端可直接service jenkins start進行開啟。
安裝完成後,訪問localhost:9000,即可看到jenkins介面,初始化密碼和安裝預設外掛的步驟,網上有很多優秀的介紹,此處省略。
2 配置環境
linux伺服器的版本是CentOS release 6.9 (Final)
2.1 Git的安裝
一開始我是直接使用了yum git install,預設安裝的git版本過低
結果在配置git頁面出現了以下的提示
error: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.net/zemo/demo.git/info/refs fatal: HTTP request failed
這裡借鑑了一位博主的文章對git進行升級,感謝大神
升級後的git版本:
git --version
git version 2.2.1
2.2 配置git,jdk,maven
選擇 系統管理=>全域性工具配置
配置git:
這裡需要注意:配置git的路徑,應該在git安裝路徑後面再加/git,參考windows配置git時使用git.exe結尾:
maven配置:
jdk配置:
配置的路徑是jdk安裝的環境變數的路徑
3 安裝外掛
系統管理=>外掛管理
篩選外掛,直接安裝即可
3.1 maven外掛,可用於構建maven風格的專案
3.2 git外掛,用於git遠端連線程式碼庫並拉取程式碼
3.3 SSH外掛,可用於上傳程式碼至遠端伺服器
這裡說明一下SSH外掛的配置
系統管理=>系統配置
按要求配置即可。
4 構建專案
4.1 構建一個maven風格的專案
4.2 配置工程資訊
點選名稱,進入構建工程,點選配置
4.2.1 general
4.2.2 原始碼管理
4.2.3 構建觸發器
4.2.4 Pre Steps
4.2.5 Post Steps
最後一個是配置執行指令碼,這樣就能實現在maven構建war包後,執行指令碼檔案,進行部署並重啟
這裡只是簡單的指令碼,借鑑了別的大神,相信所有人都看得懂
#!/bin/sh
#defined
TOMCAT_HOME="/usr/java/tomcat/apache-tomcat-7.0.67/"
ID=`ps -ef | grep java | grep apache-tomcat-7.0.67|awk '{print $2}'`
echo $ID
echo "kill tomcat"
kill -9 $ID
echo "remover war file"
cd "$TOMCAT_HOME"/webapps
rm -rf JavaWeb-0.0.1-SNAPSHOT
rm -rf JavaWeb-0.0.1-SNAPSHOT.war
echo "copy war to webapp"
cd /home/lin
cp JavaWeb-0.0.1-SNAPSHOT.war "$TOMCAT_HOME"/webapps
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
5 注意事項
5.1 配置maven時注意事項
進行自動化maven打包時可能會出現如下錯誤:
ERROR: Maven JVM terminated unexpectedly with exit code 137
說明maven可用的記憶體不足,可以在 系統管理=>系統配置
配置如下引數:
順便在此配置git的使用者名稱和密碼
5.2 maven預設的倉庫可改成阿里雲的倉庫
在conf/settings.xml中新增以下資訊:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
5.3 maven打包可能出現的錯誤
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000080000000, 1431830528, 0) failed; error='Cannot allocate memory' (errno=12)
這個時候可能是系統可用記憶體不足導致的