目录
一、准备工作
1、在部署之前需要确保服务器上安装有jenkins,没有的话可以参考之前的文章先把jenkins安装好\
2、要准备好代码仓库,gitee,gitHub,gitlab......这里我就以gitee为例,使用jenkins从gitee上拉取代码进行部署
二、环境准备
在安装jenkins的时候我们已经安装好了jdk,接下来就是安装Maven,根据自己的实际情况下载对应的版本
下载
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
安装
## 解压
tar vxf apache-maven-3.9.6-bin.tar.gz
## 移动
mv apache-maven-3.9.6 /usr/local/maven
修改环境变量
vim /etc/profile
在文件中添加,如下图所示
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
配置完毕后执行命令查看是否安装完成
mvn -v
这样maven就安装好了
然后需要配置maven仓库,和镜像源,
先来配置仓库的位置,根据自己的的需要配置到不同的目录下
在/usr/local 目录下创建文件夹
mkidr repo
然后将这个路径配置到maven的settings.xml文件中
/usr/local/repo
vim /usr/local/maven/conf/settings.xml
将/usr/local/repo路径放到第55行(使用Vim命令修改文件时,可以使用set number显示行号)
仓库配置完毕,接下来就是配置镜像源
在148行左右将下面的镜像放到<mirrors> </mirrors>标签里面
<mirror>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!-- ibiblio镜像 -->
<mirror>
<id>ibiblio</id>
<name>Mirror from Maven ibiblio</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<!-- 开源中国镜像 -->
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
到了这一步,maven就配置完毕了
三、jenkins配置
在实现持续集成之前, 需要确保以下插件安装成功。
-
Maven Integration: Maven 集成管理插件。
-
Gitee Plugin: Gitee 集成插件。
-
Publish Over SSH:远程文件发布插件。
-
SSH plugin: 远程脚本执行插件。
不确定有没有安装的话可以在这个地方数据插件的名称搜一下
全局工具配置,自动安装不要勾选
配置jdk,
git
maven
四、开始部署
配置完成后进行保存
创建任务,任务名称随便写,选择构建Maven项目
复制这个仓库的地址
提示无法连接到仓库是因为没有添加凭据,所以我们要添加凭据,直接点击添加
这个用户名密码就是你自己在登录gitee,gitLab或者是github的时候用的账号和密码,一定要确保是正确的不然就连不上代码仓库,输入完成后保存就可以了
选择刚才的凭据,无法连接仓库的提示就没了
shell脚本
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=reggie_take_out-1.0-SNAPSHOT.jar
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
export BUILD_ID=dontKillMe
cd /var/lib/jenkins/workspace/瑞吉外卖/target/
nohup java -jar reggie_take_out-1.0-SNAPSHOT.jar &> reggie_take_out.log &
echo 项目启动完成
sleep 10s
ps -aux |grep -v grep | grep java
你自己的项目是什么就写什么,然后直接进行保存,回到首页去开始构建