当前位置: 首页 > news >正文

10.Jenkins用tags的方式自动发布java应用

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/bashwebservers="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}
doscp 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.查看效果

在这里插入图片描述
刷新页面

在这里插入图片描述

http://www.lryc.cn/news/6683.html

相关文章:

  • 2023新华为OD机试题 - 相同数字的积木游戏 1(JavaScript)
  • 重构之改善既有代码的设计(一)
  • Kotlin data class 数据类用法
  • 随笔-老子不想牺牲了
  • 三种查找Windows10环境变量的方法
  • STM32单片机DS18B20测温程序源代码
  • java日志查看工具finder介绍
  • 手写现代前端框架diff算法-前端面试进阶
  • 【半监督医学图像分割 2022 MICCAI】CLLE 论文翻译
  • vivo官网App模块化开发方案-ModularDevTool
  • Python基础-数据类型之数字类型
  • 基于Web的6个完美3D图形WebGL库
  • 界面组件DevExpress Reporting v22.2 - 增强的Web报表组件UI
  • 初学vector
  • Windows10 安装wsl2、Ubuntu相关操作
  • SpringBoot简单使用MongoDB
  • Oracle Data Guard 角色转换(Role Transitions)
  • opencv的TrackBar控件
  • 关于基线长度对双天线GNSS测姿精度的影响
  • 口交换机睿易 RG-NBS1826GC 24 口
  • 如何在Excel中向下拉列表中添加条件
  • 自定义bean 加载到spring IOC容器中
  • [python入门㊻] - python装饰器和类的装饰器
  • 企业级信息系统开发学习1.1 初识Spring——采用Spring配置文件管理Bean
  • CSS盒子模型
  • Python基础学习笔记 —— 数据结构与算法
  • 笔记本连接wifi,浏览器访问页面,显示访问被拒绝
  • 36个物联网专业毕业论文选题推荐
  • Pytorch复习笔记--torch.nn.functional.interpolate()和cv2.resize()的使用与比较
  • ASP.NET Core MVC 项目 AOP之ActionFilterAttribute