Jenkins构建war项目自动部署java
简介:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工做,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能node
Jenkins的主要功能包括:mysql
1、持续的软件版本发布/测试项目。linux
2、监控外部调用执行的工做。git
环境:node1:centos7 ip:172.25.0.29github
1、jenkins安装:web
1、安装jenkins:spring
咱们先下载一个jenkins源sql
[root@node1 ~]#wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
同样的,jenkins是基于Java开发的一种持续集成工具,因此须要搭建java环境shell
[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
2、安装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>
3、安装git
[root@node1 ~]# yum install -y git
4、定义系统环境变量:
[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
5、登陆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
这里也能够根据你的需求来安装你所需的插件
6、配置系统变量:
进入到全局模式下配置:
jdk路径制定:
Maven路径制定:
git路径制定:
7、找来一个maven项目:
https://github.com/bingyue/easy-springmvc-maven
能够发现里面已经里面已经定义来pom.xml,咱们直接用就能够了:
8、开始建立一个maven项目:
1、建立一个maven项目的maven(maven):
建立完后,咱们就能够看到咱们新建的General
2、点击“源码管理“ 指定咱们的git地址
3、构建触发:
4、找到Post Steps勾选第二个选项,再选择Execute shell:
五、选择: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项目就搭建完成了。
9、总结
jenkins应用甚是普遍,如今不少公司都在使用jenkins来发布代码和测试,因此学好maven项目的部署,能让本身的效率大大提升