天天看點

Jenkins +maven+tomcat自動建構部署(學習筆記三十六)

https://my.oschina.net/denglz/blog/524154

摘要: jenkins + maven + svn + tomcat 自動部署

    jenkins  是做什麼用的,如果不知道請自行google   

    通俗的說  jenkins 可以幫助我們編譯釋出代碼,比如我們送出到SVN後,要釋出運作,就可以用過jenkins進行編譯運作

環境(這裡主要标注下我的環境):

1: SVN伺服器 項目檢出位址 

https://192.168.1.22/svn/trunk/crm

(centos)

2: maven  私服

http://192.168.1.23:8080

(cnetos)

3: tomcat web server

http://192.168.1.24

:10086   (centos)   #這個tomcat我使用的不是8080因為這個端口要讓jenkins來使用.當然這些不是固定的!!

    注: 因為我這邊是測試環境,就吧jemkins放到了tomcat web server 上.

正式部署jenkins

A:登入

192.168.1.24

部署jenkins  #我使用的帳号是root,你可以用其它的.

這台機器安裝了tomcat7 和 JDK8, 主要用到了下面兩個環境變量.

export JAVA_HOME=/usr/local/jdk8            #環境變量

export CATALINA_HOME=/usr/local/tomcat7    

mkdir -p /usr/local/jenkins  #用來存放下載下傳的jenkins

下載下傳位址:

http://mirrors.jenkins-ci.org/war/

在這裡選擇安裝版本

wget http://mirrors.jenkins-ci.org/war/1.588/jenkins.war

    #我這裡下載下傳的版本是 1.588  是14年11月更新的.  我安裝最新的版本的時候沒能正确安裝部署war到tomcat server的插件...能力問題..

執行指令  java -jar jenkins.war        #如果報類似下面的警告執行這個指令  java -Dhudson.DNSMultiCast.disabled=true -jar jenkins.war

十一月 19, 2014 4:13:12下午javax.jmdns.impl.DNSIncomingreadAnswer警告:TherewasanOPTanswer.Notcurrentlyhandled.Optioncode: 65002data: 6DE368DADD8543B8

一般情況到此安裝結束.  通路http:192.168.1.24:8080  就能出現jenkins界面  #jenkins預設使用8080  更改端口需要在執行指令的時候添加參數.

注: 執行 java -jar jenkins.war 指令以後  在當期使用者的家目錄會生成一個.jenkins目錄,  以後建立的項目,編譯生成的war檔案都在裡面. 如果剛部署好裡面應該沒有這麼多檔案.

B: 項目的添加    #這個項目的流程 從svn檢測代碼---> 編譯----->釋出到tomcat webapps目錄.

1:點選 左上角的"建立" 出現下面的界面

注:為例友善我們的java開發人員我們搭建了一個maven私服 , 在crm項目的pom檔案裡配置了maven私服的位址,在jenkins編譯java代碼的時候遇到需要jar包回到我們的maven私服去下載下傳.

2:配置crm項目裡面的各項内容

a:配置subversion  如圖

    選擇Subversion   配置 Repository URL   配置你svn裡面的項目,然後會提示你配置檢出項目的使用者與密碼. 其選項預設

b:點選 "增加建構後操作步驟" 選擇 "Deploy war/ear to a contalner"  這個選項是安裝插件以後才有的.  安裝"Deploy Plugin"插件.

注: 插件下載下傳位址:

http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/plugins/deploy/1.10/deploy.hpi

下載下傳插件以後通過 系統管理-->管理插件-->進階 上傳插件 然後重新開機jenkins( 下載下傳位址時間長了也許會失效)

c:配置有關編譯好的war目錄與tomcat的相關配置

    WAR/EAR files 這個裡面配置的是:相對于jenkins的workspace目錄的相對路徑.  我的全路徑是/root/.jenkins/workspace/crm/crm.adminWeb/target/crm.adminWeb.war  

context path  /   #/ 代表的是會把crm.adminWeb.war 換成ROOT.war放到 tomcat的webapps目錄.

tomcat的資訊主要是使用者名和密碼(來自tomcat-users.xml)  還有tomcat通路的位址

:10086 

到此 jenkins 部署 自動檢出釋出java代碼完成... 到主界面點選帶有綠色箭頭的圖示進行 檢出-->編譯--->釋出  如下圖   #點一下就好了...反映會有一點遲鈍.

補充: 

enkins預設會存放在使用者主目錄下的.jenkins檔案夾中 #這個感覺很不爽..因為jenkins目錄以後會邊的很大.....

如:Linux root使用者:/root/.jenkins

注意:這是linux版本的。windows系統請自行更改。這個值在Jenkins運作時是不能更改的. 請先将Jenkins停止運作。

如果檢視目前Jenkins目錄:系統管理→系統設定→主目錄→/root/.jenkins(注意:使用者不同,路徑也不同)

首先移動使用者家目錄下的隐藏jenkins目錄移動到到指定的目錄下面 /storage

mv /home/.jenkins   /storage/jenkins   

Jenkins儲存所有的資料檔案在這個目錄下. 你可以通過以下兩種方式更改:

使用你Web容器的管理工具設定JENKINS_HOME環境參數.

打開tomcat的bin目錄,編輯catalina.sh檔案。在# OS specific support.  $var_must_ besetto eithertrueorfalse.上面添加:exportJENKINS_HOME="/storage/jenkins"#你可以指定别的目錄在引号中填入你的路徑。

在啟動Web容器之前設定JENKINS_HOME環境變量.

用root使用者登入編輯profile檔案:vi/etc/profile在最後加入:export JENKINS_HOME=/storage/jenkins        #你可以指定别的目錄儲存,退出後執行:source/etc/profile讓配置生效

最後重新開機jenkins服務就OK了!!  

/usr/bin/java -Dhudson.DNSMultiCast.disabled=true -jar /usr/local/jenkins/jenkins.war&