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項目的部署,能讓本身的效率大大提升