Jenkins构建war项目自动部署
简介:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能
Jenkins的主要功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
环境:node1:centos7 ip:172.25.0.29
一、jenkins安装:
1、安装jenkins:
我们先下载一个jenkins源
[root@node1 ~]#wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
一样的,jenkins是基于Java开发的一种持续集成工具,所以需要搭建java环境
[root@node1 ~]# yum install -y *jdk* [root@node1 java-1.8.0]# ln -s /usr/lib/jvm/java-1.8.0/ /usr/local/jdk/ ##新建软连接
2、导入keys
[root@node1 ~]# rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
3、安装jenkins:
[root@node1 ~]# yum install -y jenkins [root@node1 ~]# systemctl start jenkins
二、安装maven:
下载maven,具体目录可根据实际情况而定
[root@node1 ~]# cd /usr/local/src/ ##为了方便我这里就放到src目录下 [root@node1 src]# wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz [root@node1 src]# tar xf apache-maven-3.3.9-bin.tar.gz [root@node1 src]# mv apache-maven-3.3.9 /usr/local/maven ###移动重名
下一步,开始配置linux环境变量
[root@node1 src]# vim /etc/profile export MAVEN_HOME=/usr/local/maven export PATH=${PATH}:${MAVEN_HOME}/bin [root@node1 src]# source /etc/profile ##使刚配置的环境变量生效 [root@node1 ~]# cd /usr/local/maven/conf/
[root@node1 conf]# mvn –v ##查看一下maven的版本 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /usr/local/maven Java version: 1.8.0_151, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-693.2.2.el7.x86_64", arch: "amd64", family: "unix"
修改setting文件,添加子的源
[root@node1 ~]# vim /usr/local/maven/conf/settings.xml <mirrors> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirrors>
三、安装git
[root@node1 ~]# yum install -y git
四、定义系统环境变量:
[root@node1 local]# vim /etc/profile export PATH=${PATH}:${MAVEN_HOME}/bin export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar export MAVEN_HOME=/usr/local/maven3 export PATH=${PATH}:${MAVEN_HOME}/bin
[root@node1 local]# source /etc/profile
五、登录jenkins页面,把git插件和maven插件安装上:
查看jenkins起来了没:
[root@node1 local]# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1201/sshd tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1200/rsyslogd tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 872/rsync tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::8080 :::* LISTEN 6682/java tcp6 0 0 :::80 :::* LISTEN 1193/httpd tcp6 0 0 :::2224 :::* LISTEN 867/ruby tcp6 0 0 :::22 :::* LISTEN 1201/sshd tcp6 0 0 :::514 :::* LISTEN 1200/rsyslogd tcp6 0 0 :::873 :::* LISTEN 872/rsync tcp6 0 0 :::3306 :::* LISTEN 1486/mysqld
网页访问http://172.25.0.29:8080 ##IP是安装jenkin所在的主机的IP
这是叫我们到/var/lib/jenkins/secrets/initialAdminPassword目录下把密码复制到框下:
[root@node1 local]# cat /var/lib/jenkins/secrets/initialAdminPassword 8eb87596d8ec4e90ae2cea40fa8fcd59
接下来点击自定义安装插件,然后把git插件和maven插件安装上
装完后,进入下一个页面,创建用户:
登录用户我们就已经看到主页的内用了
注意小事项:
如果你不小心点了,“建议安装”,也可以到里面后再安装插件。我这里来说说:
点击 系统管理à管理插件à点击可选插件 ,把下面的几个直接安装就好;
CCM Plug-in
Maven Release Plug-in Plug-in
Publish Over SSH
这里也可以根据你的需求来安装你所需的插件
六、配置系统变量:
进入到全局模式下配置:
jdk路径制定:
Maven路径制定:
git路径制定:
七、找来一个maven项目:
https://github.com/bingyue/easy-springmvc-maven
可以发现里面已经里面已经定义来pom.xml,我们直接用就可以了:
八、开始创建一个maven项目:
1、创建一个maven项目的maven(maven):
创建完后,我们就可以看到我们新建的General
2、点击“源码管理“ 指定我们的git地址
3、构建触发:
4、找到Post Steps勾选第二个选项,再选择Execute shell:
5、选择:Execute shell,添加关于war直接部署脚本, 直接推送到远程即可。
#!/bin/bash
#copy file and restart tomcat2
tomcat_path=/usr/local/tomcat
project=easy-springmvc-maven
war_name=easy-springmvc-maven.war
war_path=http://172.25.0.29:8080/jenkins/job/jeekins-test/ws/target
server_port=8082
file_path=/home/bingyue/.jenkins/jobs/jeekins-test/workspace/target
now=$(date +"%Y%m%d%H%M%S")
echo "the shell execute time is ${now}"
echo `lsof -n -P -t -i :${server_port}`
tomcat_pid=`lsof -n -P -t -i :${server_port}`
echo "the tomcat_pid is ${tomcat_pid}"
if [ "${tomcat_pid}" != "" ]; then
kill -9 $tomcat_pid
echo "kill the server"
fi
echo "rm ${tomcat_path}/webapps/${war_name}"
rm ${tomcat_path}/webapps/${war_name}
echo "rm -rf ${tomcat_path}/webapps/${project}"
rm -rf ${tomcat_path}/webapps/${project}
cd $file_path
if [ -f ${war_name} ]; then
cp ${war_name} ${tomcat_path}/webapps
else
echo "${war_name} unexists"
fi
export JAVA_HOME=/data/jdk7
export CATALINA_HOME2=/usr/local/apache-tomcat-2
export CATALINA_BASE2=/usr/local/apache-tomcat-2
$tomcat_path/bin/startup.sh
echo "server restarted"
然后我们的war就部署完成了。
启动maven项目,看看是否可以启动成功。我这里已经是可以启动成功了的。
至此一个maven项目就搭建完成了。
九、总结
jenkins应用甚是广泛,现在很多公司都在使用jenkins来发布代码和测试,所以学好maven项目的部署,能让自己的效率大大提高