Jenkins實現SVN+Maven+Java項目的持續集成


Jenkins 2.46.1

Centos 7.3

JDK 7

安裝jdk/maven/svn

在Jenkins所在的Linux機器安裝jdk和maven,步驟就不說了,下面是環境變量:

export JAVA_HOME=/usr/local/jdk1.7.0_65
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

export M2_HOME=/usr/local/apache-maven-3.0.5
export PATH=$M2_HOME/bin:$PATH

注意:maven的conf/settings.xml配置應該是自己項目的,這里也省略了;

svn直接用yum安裝即可:

# yum install svn -y

安裝Jenkins插件

瀏覽器登錄Jenkins,進入插件管理,安裝下面三個插件:

Maven Integration plugin
Subversion Plug-in
Publish Over SSH

同時會有其他依賴的插件安裝,若有安裝失敗的就去http://updates.jenkins-ci.org/download/plugins下載后在“高級”那里上傳上來即可;

都安裝完成后重啟下Jenkins:

# systemctl restart jenkins

在Jenkins配置jdk/maven/svn

瀏覽器登錄Jenkins,進入“系統管理” -> “Global Tool Configuration”,配置jdk和maven后保存:

 

 下面創建一個maven類型的任務(job):

(填入svn信息)

(添加svn用戶:輸入username和password即可)

(構建觸發器,H/5 * * * * 表示每5分鍾檢查一次,如果svn有更新就進行一次構建)

(maven參數)

最后點擊“保存”按鈕,然后會進入這個新建的任務頁面,點擊“立即構建”試試:

(第一次構建遇到過報錯:SVNAuthenticationException: svn: E170001: Authentication required for 'reps',進到配置里重新選一下svn用戶即可)

 自動部署

自動檢測svn並構建仍然不夠,還需要自動部署和重啟;

首先需要配置Jenkins所在Linux到部署Linux的免密登錄,假設兩者ip分別為192.168.1.111和112,則在111上執行命令:

(命令1有交互按自己的需求填寫,簡單的就全部直接回車)

(命令2需要輸入112的root密碼)

# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.112

接着在瀏覽器,進入“系統管理” -> “系統設置”,配置SSH:

然后再這個SSH配置的下方增加112機器的配置:

下面進入前面新建的任務的配置中,在“增加構建后操作步驟”中選擇“Send build artifacts over SSH”:

 

強調一,目標文件,這里是任務路徑下的相對路徑,與瀏覽器中任務的工作空間看到的路徑一致;

強調二,傳輸到目標路徑,這個是“系統設置”中那個“遠程工作目錄”的相對路徑,比如這里就是把file.zip傳到/usr/local/assembly/;

保存后再次構建,構建完成后,在112機器上檢查:

# ll /usr/local/assembly/file.zip
    -rw-r--r-- 1 root root 25052989 Apr 15 15:53 /usr/local/assembly/file.zip

實現的效果:對這個maven工程,每五分鍾檢測svn,若有提交則構建並更新和重啟;

over


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM