前提工作
1、创建opt目录(所有东西安装在此)
cd /
mkdir /opt #jdk maven安装目录
mkdir /opt/jar/helloworld #jar shell脚本目录
2、获取安装包(Jenkins+JDK+Maven+shell脚本)
链接:https://pan.baidu.com/s/1_QYGYHyJteR6WmLHxdrhwQ
提取码:oove
2.1安装JDK
cd /opt
#解压
tar -zxvf jdk-8u131-linux-x64.tar.gz
#修改配置
vim /etc/profile
配置环境变量
#jdk
export JAVA_HOME=/opt/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
2.2安装Maven
cd /opt
tar -zxvf apache-maven-3.6.1-bin.tar.gz
vim /etc/profile
配置环境变量
#maven
export MAVEN_HOME=/opt/apache-maven-3.6.1
export PATH=${PATH}:${MAVEN_HOME}/bin
2.3安装Git
sudo apt-get install git # 安装git
git config --global user.name "evio"
git config --global user.email "977905698@qq.com"
二、项目准备
1、gitee创建新仓库
2.创建SpringBoot项目
拉取代码创建Springboot项目
Pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hive</groupId>
<artifactId>helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>helloworld</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<defaultGoal>compile</defaultGoal>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--使单元测试不影响项目的编译(需要单元测试的时放开)-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip><!--跳过单元测试-->
<!--<testFailureIgnore>true</testFailureIgnore>--><!--这个网上很多的解决方式是这个,其实这个,其实这个配置后打包还是会编译单元测试类的,只是忽略编译单元测试类的错误.-->
</configuration>
</plugin>
</plugins>
</build>
</project>
三、准备脚本(脚本存放目录 cd /opt/jar/helloworld)
3.1.stop.sh
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep helloworld-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
3.1.bak.sh
#备份文件目录
bakfile="/opt/jar/helloworld/helloworld-0.0.1-SNAPSHOT.jar"
#备份1和备份2目录是否存在
if test -e $file1
then
echo '========================'
else
echo '===备份1目录不存在,创建目录==='
mkdir -p $file1
fi
if test -e $file2
then
echo '========================'
else
echo '===备份2目录不存在,创建目录==='
mkdir -p $file2
fi
#获取备份1和备份2的文件个数
filecount1=`ls $file1 | wc -w`
filecount2=`ls $file2 | wc -w`
#如果备份1文件数小于5 存入备份1
if [ $filecount1 -lt 5 ]
then
echo " =====备份1副本个数: $filecount1 == 备份2副本个数: $filecount2===== "
echo " =====正写入备份1===== "
mv $bakfile $file1/${bakfile##*/}.`date +%Y%m%d%H%M%S`
echo " ======备份完毕====== "
fi
#如果备份1等于5 备份2小于5 存入备份2
if [ $filecount1 -eq 5 -a $filecount2 -lt 5 ]
then
echo " =====备份1副本个数: $filecount1 == 备份2副本个数: $filecount2===== "
echo " 正写入备份2 "
mv $bakfile $file2/${bakfile##*/}.`date +%Y%m%d%H%M%S`
echo "=====备份完毕===== "
fi
#如果备份1等于5 备份2等于5 清空备份2 备份1 存入备份2 清空备份1 存入备份1
if [ $filecount1 -eq 5 -a $filecount2 -eq 5 ]
then
echo " =====备份1副本个数: $filecount1 == 备份2副本个数: $filecount2===== "
echo " =====正写入备份1===== "
#清空备份2
rm -rf $file2/*
echo " =====清空备份2===== "
#备份1 存入备份2
mv $file1/* $file2/
echo " =====备份1转入备份2===== "
#清空备份1
rm -rf $file1/*
echo " =====清空备份1===== "
#存入备份1
echo " =====存入备份1===== "
mv $bakfile $file1/${bakfile##*/}.`date +%Y%m%d%H%M%S`
echo " =====备份完毕===== "
fi
3.3.replace.sh
mv /var/lib/jenkins/workspace/helloworld/hive/target/helloworld-0.0.1-SNAPSHOT.jar /opt/jar/helloworld
四、配置Jenkins
4.1安装Jenkins
sudo rpm -ih jenkins-2.176.2-1.1.noarch.rpm
自动安装完成之后:
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件
在jenkins配置文件中配置 需要“vi /etc/init.d/jenkins”,把java路径加上,如下:
启动命令
sudo service jenkins start
启动正常,可以访问:http://localhost:8080
指定目录查询登录密码
进入用户自定义插件界面,建议选择安装官方推荐插件,因为安装后自己也得安装:
等待一段时间之后,插件安装完成,配置用户名密码:
4.2配置Jenkins
进入 系统管理-》全局工具配置
1、设置 jdk(前面安装的java,但是显示不在 jenkins 里的错误,所以这里再手动安装)
2、设置 Git
3、设置 Maven
4、安装 Maven Integration plugin 插件
五、部署项目
1、首页点击新建:输入项目名称
下方选择构建一个maven项目,点击确定。
勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的5个
如果你没有第二个选项,需要安装 Maven Integration plugin 插件
2、勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的5个
3、源码管理,配置Git相关信息
4、构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来
5、在Build中输入打包前的mvn命令,如:
clean install -Dmaven.test.skip=true -Ptest
6、Post Steps 选择 Run only if build succeeds 点击Add post-build step,选择 Excute Shell
cd /opt/jar/helloworld/
sh stop.sh
sh bak.sh
sh replace.sh
BUILD_ID=dontKillMe nohup java -jar /opt/jar/helloworld/helloworld-0.0.1-SNAPSHOT.jar &
六、构建项目
查看日志
最终生成目录