转载请注明出处:http://blog.csdn.net/l1028386804/article/details/78668879
今天,我们一起来学习下Jenkins如何实现构建Java Maven项目并发布到远程Tomcat。首先,我们需要配置基础环境。
前提:所有的环境均搭建在CentOS 6.5 x64服务器上,IP:192.168.209.121 主机名:liuyazhuang121 , 并在服务器上配置了主机名到IP的映射。
本文基于:jdk1.8+Maven3.3.9+tomcat7.0+jenkins2.19.3+SSH+Shell
一、准备工作
1、配置JDK环境
1-1、下载JDK
输入链接http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载JDK。
1-2、解压并配置环境变量
tar -zxvf jdk-7u80-linux-x64.tar.gz
JAVA_HOME=/usr/local/jdk1.7.0_80
CLASS_PATH=.:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASS_PATH PATH
2、配置Maven
2-1、下载Maven
大家可以到链接http://download.csdn.net/download/l1028386804/10138232下载Maven3.3.9,可以到链接http://download.csdn.net/download/l1028386804/10138239下载Maven配置私服后的setting.xml文件模板,只需要需改其中的ip和端口号即可
3、下载tomcat
大家可以到链接https://tomcat.apache.org/download-70.cgi下载tomcat。
4、下载Jenkins
到连接http://download.csdn.net/download/l1028386804/10127368 下载jenkins2.19.3。
5、配置SSH免登录
5-1、配置
ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys/5-2、验证
ssh liuyazhuang121
二、配置Jenkins
1、启动Jenkins
下载的Jenkins war包拷贝到${TOMCAT_HOME}/webapp目录下,并启动Tomcat,在浏览器中输入http://192.168.209.121:8080/jenkins,如下图所示,则证明Jenkins启动成功。
2、安装插件
上述默认安装的插件还不够
依次点击 系统管理->插件管理-> 可选插件-> 过滤搜索框中 查找如下插件:
Maven Integration plugin
SSH plugin
Deploy to container Plugin3、设置系统管理-Global Tool Configuration
在系统管理-Global Tool Configuration中配置JDK和Maven,如下:
4、配置系统管理-Configure Global Security
5、注册并登录用户
6、配置SSH remote hosts
在系统管理-系统设置,配置SSH remote hosts
点击Add按钮设置登录方式,如下图所示:
点击Check connection按钮 ,如果页面上输出Successfull connection,则SSH配置成功,如下图所示:
7、新建项目构建
8、配置项目构建
8-1、General-配置项目名称
8-2、源码管理-配置SVN信息
8-3、Pre Steps
8-4、Post-Steps
配置完成后保存。
9、构建项目
回到主页,点击立即构建项目按钮,如下图:
可看到页面上出现对maven_test的构建进度条,点击进度条即可进入日志输出页面,如下图:
输出如下日志,则代表构建并部署到tomcat成功。
三、附录
tomcat.sh脚本
#!/bin/sh
## java env
## service name
SERVICE_NAME=tomcat_service
case "$1" in
start)
/usr/local/tomcat/test-tomcat-10000/bin/startup.sh
;;
stop)
sleep 5
##
## edu-service-aa.jar
## edu-service-aa-bb.jar
P_ID=`ps -ef | grep -w "test-tomcat-10000" | grep -v "grep" | awk '{print $2}'`
if [ "$P_ID" == "" ]; then
echo "=== $SERVICE_NAME process not exists or stop success"
else
echo "=== $SERVICE_NAME process pid is:$P_ID"
echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"
kill $P_ID
fi
;;
restart)
$0 stop
sleep 2
$0 start
echo "=== restart $SERVICE_NAME"
;;
*)
## restart
$0 stop
sleep 2
$0 start
;;
esac
exit 0