Jenkins用tags的方式自动发布java应用
- 1.配置jenkins,告诉jenkins,jdk的安装目录,maven的安装目录
- 2.构建一个maven项目
- 指定构建参数,选择Git Paramete
- 在源码管理中,填写我们git项目的地址,调用变量
- 构建前执行的操作
- 构建阶段
- 构建后执行的操作
- 3.开发提交代码至gitlab
- 4.Jenkins上进行构建
- 5.查看效果
大概环境:
1.配置jenkins,告诉jenkins,jdk的安装目录,maven的安装目录
管理Jenkins–>全局工具配置–>JDK安装–>新增JDK
java -version #查看jdk版本
mvn -version #查询java的安装路径
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre
全局工具配置–>Maven–>新增Maven
mvn -version #查看maven安装目录
Maven home: /usr/share/maven
安装maven插件
2.构建一个maven项目
指定构建参数,选择Git Paramete
在源码管理中,填写我们git项目的地址,调用变量
构建前执行的操作
Jenkins上提前准备好连接生产用的数据库配置文件,然后代码拉取下来后进行替换即可
构建阶段
填写选项,跳过测试用例
构建后执行的操作
vim /var/lib/jenkins/scripts/java_tag.sh
#!/usr/bin/bash
webservers="192.168.xx.xxx 192.168.xx.xxx"
Date=$(date +%F-%H-%M)
Web_Dir=/opt
Web_Name=ROOT_${Date}_${git_version}
cd ${WORKSPACE} && \
for host in ${webservers}
do
scp target/*.war root@$host:${Web_Dir}/${Web_Name}.war && \ #拷贝war包到集群机器的指定目录
ssh root@$host "cd ${Web_Dir} && \ #登陆到集群的机器,进入存放war包的目录
mkdir -p ${Web_Name} && \ #创建一个目录
unzip ${Web_Name}.war -d ${Web_Name} && \ #解压war包到刚才创建的目录
rm -f ${Web_Name}.war && \ #删除包
rm -rf /soft/tomcat/webapps/ROOT && \ #删除ROOT目录
ln -s ${Web_Dir}/${Web_Name} /soft/tomcat/webapps/ROOT && \ #创建软连接
pkill java && \ #干掉java
/soft/tomcat/bin/startup.sh" #重载服务
done
3.开发提交代码至gitlab
进入项目目录,修改代码后打个标签然后提交
cd hello-world-war-master
git add .
git commit -m 'hello_v1.0'
git tag -a v1.0 -m 'hello_v1.0'
git push origin --tags
4.Jenkins上进行构建
5.查看效果
刷新页面