jenkins構建Maven項目遠程發佈到服務器

#開始 https://jenkins.io/ 到官網直接下載個最新版本的war包 服務器搭建tomcat,將jenkins.io 丟到tomcat 的發佈目錄: ###參考tomcat配置html

<Connector port="18080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

... ...
<Host name="localhost"  appBase="/home/wwwroot/jenkins"
            unpackWARs="true" autoDeploy="true">
... ...

###jenkins.war 放置目錄java

[root@localhost jenkins]# pwd
	/home/wwwroot/jenkins
	[root@localhost jenkins]# ls
	jenkins  jenkins.war

#啓動tomcat 訪問 http://[ip]:18080/jenkins/ #安裝必要的插件 系統管理->管理插件->可選插件 Filter:輸入maven 安裝:Maven Integration plugin Maven Integration plugingit

Filter:輸入publish 安裝:Publish Over SSHgithub

Publish Over SSH

Filter:輸入email 安裝:Email Extension Pluginweb

Email Extension Plugin

#系統配置: ###Jenkins Location->系統管理員郵件地址 填入管理員郵箱; 填入管理員郵箱shell

###Extended E-mail Notification配置我這裏以QQ郵箱爲例: Extended E-mail Notificationtomcat

注意:郵箱記得打開smtp 服務 jdk1.8下有可能報錯:服務器

javax.mail.MessagingException: Could not connect to SMTP host: smtp.***.com, port: 465;
... ...

####第一種解決方法: 導入證書oracle

$JAVA_HOME/bin/keytool -import -alias mail.****.com -file mail.****.com.cer -keystore $JAVA_HOME/jre/lib/security/cacerts

測試連接app

java SSLPoke smtp.*****.com 465

####第二種解決方法 下載 jce-7

%JAVA_HOME%/jre/lib/security

替換jdk1.8下的兩個包 Publish over SSH Publish over SSH 最後test configuration 連接成功就ok

#Global Tool Configuration配置 系統管理->Global Tool Configuration ####Maven Configuration 我這裏直接配置服務器安裝好的setting.xml Maven Configuration ####配置服務器已安裝jdk jdk ####maven 目錄 maven #新建一個構建發佈任務 構建發佈任務 選擇ok 進入配置:

輸入圖片說明

輸入圖片說明 輸入圖片說明

輸入圖片說明

這裏有個遠程服務器執行的shell,放在遠程服務器上,須要加上 BUILD_ID=DONTKILLME 防止中止構建以後中斷執行shell。shell主要是完成 複製上傳的war包到tomcat下的目錄,而後重啓tomcat,下面我給出簡單示例:

#!/bin/sh
	projname=項目名字
	deployPath=/home/webroot/default
	tomcatUnzipPath=/home/webroot/[tomcat解壓路徑]/
	uploadPath=/[war 上傳路徑]/${projname}.war

	restartShell="[tomcat 重啓腳本]"

	if [ -f "${uploadPath}" ]; then

	rm -f ${deployPath}/${projname}.war
	cp ${uploadPath} ${deployPath}/${projname}.war

	rm -rf ${tomcatUnzipPath}
	#重啓jetty
	echo ${restartShell}
	${restartShell}
	
	else
		echo "war 包不存在"
		exit 1
	fi
		echo "success"
		exit 0

參考: Jenkins-郵箱配置及問題解決 解決jdk1.8中發送郵件失敗(handshake_failure)問題

相關文章
相關標籤/搜索