开始
https://jenkins.io/ 到官网直接下载个最新版本的war包
服务器搭建tomcat,将jenkins.io 丢到tomcat 的发布目录:
参考tomcat配置
<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 放置目录
[root@localhost jenkins]# pwd
/home/wwwroot/jenkins
[root@localhost jenkins]# ls
jenkins jenkins.war
启动tomcat
访问 http://[ip]:18080/jenkins/
安装必要的插件
系统管理->管理插件->可选插件
Filter:输入maven
安装:Maven Integration plugin
Filter:输入publish
安装:Publish Over SSH
Filter:输入email
安装:Email Extension Plugin
系统配置:
Jenkins Location->系统管理员邮件地址 填入管理员邮箱;
Extended E-mail Notification配置我这里以QQ邮箱为例:
注意:邮箱记得打开smtp 服务
jdk1.8下有可能报错:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.***.com, port: 465;
... ...
第一种解决方法:
导入证书
$JAVA_HOME/bin/keytool -import -alias mail.****.com -file mail.****.com.cer -keystore $JAVA_HOME/jre/lib/security/cacerts
测试链接
java SSLPoke smtp.*****.com 465
第二种解决方法
下载 jce-7
%JAVA_HOME%/jre/lib/security
替换jdk1.8下的两个包
Publish over SSH
最后test configuration 链接成功就ok
Global Tool Configuration配置
系统管理->Global Tool Configuration
Maven Configuration
我这里直接配置服务器安装好的setting.xml
配置服务器已安装jdk
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