0、准备工作
(0)一个内存2G以上的服务器、一个用来做测试的项目
#我的项目地址如下,访问端口是9080
https://gitee.com/ayu-elephant/jenkinsdemo.git
(1)jdk环境
https://blog.csdn.net/A_yonga/article/details/125526307
(2)maven环境安装、配置淘宝镜像
https://blog.csdn.net/zjTaurus01/article/details/125729254
#maven安装包
链接:https://pan.baidu.com/s/14IqksuFkBlkHdqyFsNbBcw?pwd=9d2k
提取码:9d2k
(3)安装git
yum install git
#检查git版本号
git --version
(4)安装jenkins
https://blog.csdn.net/A_art_xiang/article/details/113775815
#jenkins安装包
链接:https://pan.baidu.com/s/14IqksuFkBlkHdqyFsNbBcw?pwd=9d2k
提取码:9d2k
#Jenkins启动命令(后面的 >mylog.log 2>&1是习惯写法):
nohup java -jar jenkins.war >mylog.log 2>&1 &
#停止命令:
kill -9 pid
(5)安装Jenkins插件
dashboard > manage jenkins > manage plugins
1、jenkins配置
dashboard > manage jenkins >global tool configuration
maven_home按自己的路径来
2、新建maven项目及配置
(0)新建item
(1)general默认
(2)源码管理
(3)构建触发器
(4)build
(5)post steps
准备的stop.sh脚本,上传到服务器/opt/module下面,使用命令:
chmod 777 stop.sh
修改脚本读写权限。
stop.sh
#!/bin/bash
appname=$1
#获取传入的参数
echo "arg:$1"
#获取正在运行的jar包pid
pid=`ps -ef|grep $1| grep 'java -jar' |awk '{print $2}'`
echo $pid
#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断
then
echo "$appname not started"
else
kill -9 $pid
echo "$appname stoping...."
check=`ps -ef | grep -w $pid | grep 'java -jar'|awk '{print $2}'`
if [ -z $check ];
then
echo "$appname pid:$pid is stop"
else
echo "$appname stop failed"
fi
fi
勾选run only if build succeeds,shell指令根据自己的项目修改相关路径即可:
cd /opt/module
#根据自己stop.sh脚本所在地址写
./stop.sh demo.jar
#demo.jar是自己的应用名字
mv /root/.jenkins/workspace/jenkinsdemo-1/demo/target/demo.jar /opt/module/demo.jar
#此处 /root/.jenkins/workspace/jenkinsdemo-1/demo/target/demo.jar根据自己实际jar包名称和路径修改
BUILD_ID=dontKillMe
#修改BUILD_ID为dontKillMe解决 nohup指令报错
nohup java -jar /opt/module/demo.jar &
#根据自己jar包的名称、地址修改
3、点击构建项目按钮、查看构建日志
补充
1、部署VUE框架前端:
脚本:
#切换目录(我的vue项目在git源码根路径的ocrweb目录下,你们的如果是在根路径下面,cd这个命令请忽略)
#cd ocrweb
#加载依赖
npm config set user 0
npm config set unsafe-perm true
npm install --registry=https://registry.npm.taobao.org
#构建代码
npm run build
#复制构建后的文件到nginx里面项目对应的部署目录下
cp dist/* -rf /opt/module/nginx/html
nginx配置:
server {
listen 8200;
server_name 121.229.103.207;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
2、部署nuxt框架前端
需要安装pm2框架
脚本:
npm install --registry=https://registry.npm.taobao.org
npm run build
pm2 start npm --name=name -- start