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)问题

相关文章
相关标签/搜索