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

如何快速部署jenkins,实现maven项目部署_maven

这是叫我们到/var/lib/jenkins/secrets/initialAdminPassword目录下把密码复制到框下:

[root@node1 local]# cat /var/lib/jenkins/secrets/initialAdminPassword
8eb87596d8ec4e90ae2cea40fa8fcd59


接下来点击自定义安装插件,然后把git插件和maven插件安装上

如何快速部署jenkins,实现maven项目部署_部署_02

装完后,进入下一个页面,创建用户:

如何快速部署jenkins,实现maven项目部署_部署_03

登录用户我们就已经看到主页的内用了

如何快速部署jenkins,实现maven项目部署_jenkins_04

注意小事项:

如果你不小心点了,建议安装,也可以到里面后再安装插件。我这里来说说:

点击 系统管理à管理插件à点击可选插件 ,把下面的几个直接安装就好;

CCM Plug-in

Maven Release Plug-in  Plug-in

Publish Over SSH

这里也可以根据你的需求来安装你所需的插件

六、配置系统变量:

进入到全局模式下配置

如何快速部署jenkins,实现maven项目部署_部署_05

 

jdk路径制定:

如何快速部署jenkins,实现maven项目部署_部署_06

Maven路径制定

如何快速部署jenkins,实现maven项目部署_maven_07

git路径制定:

如何快速部署jenkins,实现maven项目部署_jenkins_08

七、找来一个maven项目:

https://github.com/bingyue/easy-springmvc-maven

可以发现里面已经里面已经定义来pom.xml,我们直接用就可以了:

八、开始创建一个maven项目:

1、创建一个maven项目的maven(maven):

如何快速部署jenkins,实现maven项目部署_maven_09

创建完后,我们就可以看到我们新建的General

如何快速部署jenkins,实现maven项目部署_部署_10

2、点击源码管理指定我们的git地址

如何快速部署jenkins,实现maven项目部署_部署_11

如何快速部署jenkins,实现maven项目部署_部署_12

3、构建触发:

如何快速部署jenkins,实现maven项目部署_jenkins_13

4、找到Post Steps勾选第二个选项,再选择Execute shell:

 

如何快速部署jenkins,实现maven项目部署_部署_14

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项目,看看是否可以启动成功。我这里已经是可以启动成功了的。



如何快速部署jenkins,实现maven项目部署_部署_15



如何快速部署jenkins,实现maven项目部署_部署_16

至此一个maven项目就搭建完成了。

九、总结

    jenkins应用甚是广泛,现在很多公司都在使用jenkins来发布代码和测试,所以学好maven项目的部署,能让自己的效率大大提高