Docker-安装Jenkins-使用jenkins发版Java项目

news2024/9/22 21:12:51

文章目录

  • 0.前言
    • 环境背景
  • 1.操作流程
    • 1.1前期准备工作
      • 1.1.1环境变量的配置
    • 1.2使用流水线的方式进行发版
      • 1.2.1新建流水线任务
      • 1.2.2流水线操作
        • 工具tools
        • 步骤stages
          • 步骤1:拉取代码+编译
          • 步骤2:发送文件并启动

0.前言

学海无涯,旅“途”漫漫,“途”中小记,如有错误,敬请指出,在此拜谢!

环境背景

环境版本
电脑MAC M2 max
dockerDocker version 20.10.22, build 3a2c30b
其他此处使用了Docker Desktop

1.操作流程

根据上一篇文章,安装完Jenkins后,即可进行Java项目的配置。对于发版Java项目,旧版本的Jenkins使用插件进行发版。新版本的Jenkins可以使用流水线的方式进行发版。此处两种方式都进行介绍。

1.1前期准备工作

1.1.1环境变量的配置

进入系统管理,配置maven、jdk、ssh参数。

在这里插入图片描述

(1)配置maven、jdk
进入全局工具配置,就能看见maven和jdk的配置。此处可以使用你本地的配置,也可以让jenkins自己安装。按照提示自己安装就行。当然,此处也可以配置maven的setting.xml和其他的插件。此处不做多余赘述,如出现问题可以私聊我。

在这里插入图片描述
在这里插入图片描述

(2)配置ssh服务属性

进入系统配置,页面中搜索ssh,能找到Publish over SSH的位置(如果未找到,回到系统管理才到,会找到插件管理。可以在插件管理里面安装Publish over SSH)
在这里插入图片描述

1.2使用流水线的方式进行发版

1.2.1新建流水线任务

点击新建任务,输入名称,选择流水线,点击确定

在这里插入图片描述

1.2.2流水线操作

找到下方流水线,便能看到流水线内容输入框,这里是最重要的地方。(如果脚本框不显示,就点击保存后,重新进入配置编辑,就会显示了)

在这里插入图片描述

此处粘贴我的流水线脚本全文,我在分步进行解释。

pipeline {
    agent any

    tools {
        maven "maven3.8.7"
    }

    stages {
        stage('服务编译') {
            steps {
                git credentialsId: 'xxx', url: 'xxxx'
                sh "mvn -s /usr/environment/maven/settings-docker.xml clean package -Dmaven.test.skip=true"
            }
        }
        
        stage("服务传输、启动"){
             steps {
                # xxx
            }
        }
    }
    
}

工具tools

tools部分,是配置maven,这块如果使用系统默认的maven的话,就可以删了。如果需要特定maven的话,就在jenkins配置maven后,在此处配置maven的名称。代码如下:

tools {
    maven "maven3.8.7"
}

步骤stages

此处可以分步骤来进行操作,比如下属代码:

stages {
    stage('步骤一') {
        steps {
           操作1.1
        }
    }

    stage("步骤二"){
         steps {
            操作2.1
        }
    }
}

此处我们步骤一是拉取代码,步骤二是对服务器进行发版处理。

不要担心流水线语法自己不会,jenkins安心的给你准备了流水线语法生成器,如图:

在这里插入图片描述

步骤1:拉取代码+编译

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TZqL8bVy-1676189304717)(evernotecid://3560A1D2-2684-4104-9AF8-0F51B73094EC/appyinxiangcom/6351724/ENResource/p615)]

然后将这个数据填入到steps里面内容。例如:

stage('步骤一') {
    steps {
       git credentialsId: '056884ee-4185-44b9-ac82-833be2526ce5', url: 'http://x.x.x.x.x/a.git'
    }
}
步骤2:发送文件并启动

服务选择sshPublisher

在这里插入图片描述

对应参数如下

在这里插入图片描述

(1)Source files

你准备传递的文件地址,这里的地址指的是当前文件在工作工作空间的相对地址哈。你可以把发送文件的这一步的steps注释掉,先只进行编译,在工作空间查看位置。

在这里插入图片描述

此处最后就可以填写位置路径,比如:

yudao-server/target/yudao-server.jar

(2)Remove prefix

这个呢,是要删除的前缀,针对于上面来说,就是

yudao-server/target

(3)Remote directory

这个是待发版的目标地址,比如

/opt/yudao-server/api/temp

(4)Exec command

待执行的命令,根据自己需求来编写shell脚本。此处看需求,没什么好讲的。我把我的粘进来

# kill正在启动的服务。此处是根据后面的查询条件,来查询服务的进程号,从而杀掉。
kill -9 `ps -ef | grep 'yudao-server.jar'  | grep -v 'grep' | awk '{print $2}'`
# 打开文件夹
cd /opt/test/yudao-server-api
# 将之前的服务增加时间后缀做备份
mv yudao-server.jar  yudao-server.jar-$(date "+%Y%m%d%H%M%S")
# 把之前上传的服务从临时文件夹移到工作空间文件夹里面
mv ./temp/yudao-server.jar  ./
# 启动
nohup java -jar -Xms128m -Xmx128m /opt/test/yudao-server-api/yudao-server.jar --spring.profiles.active=prod >> /dev/null 2>&1 &

以上内容填写完后点击生成流水线,粘进steps中就行了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/341504.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从0到1一步一步玩转openEuler--12 openEuler用户管理

文章目录12.1 创建用户12.1.1 useradd命令12.1.2 用户信息文件12.1.3 创建用户实例12.2 修改用户账号12.2.1 修改密码12.2.2 修改用户shell设置12.2.3 修改主目录12.2.4 修改UID12.2.5 修改账号的有效期12.3 删除用户12.4 管理员账户授权在Linux中,每个普通用户都有…

【Java 面试合集】怎么声明一个类不会被继承,以及应用场景

怎么声明一个类不会被继承,以及应用场景1. 概述 今天的Java 面试合集又来了。今天我们复习的问题是:怎么声明一个类,不可以被继承 2. 验证 public final class TestMath { }通过上述截图 我们可以看到,被关键字final 修饰过的类,…

EOC第六章《块与中枢派发》

文章目录第37条:理解block这一概念第38条:为常用的块类型创建typedef第39条:用handler块降低代码分散程度第41条:多用派发队列,少用同步锁方案一:使用串行同步队列来将读写操作都安排到同一个队列里&#x…

02 OpenCV图像通道处理

1 通道提取与合并 在数字图像处理中,图像通道是指一个图像中的颜色信息被分离为不同的颜色分量。常见的图像通道包括RGB通道、灰度通道、HSV通道等。 RGB通道是指将图像分离为红色、绿色和蓝色三个颜色通道,每个通道表示相应颜色的亮度。这种方式是最常…

【QT 5 相关实验-仪表盘-学习笔记-表盘组件练习与使用总结】

【QT 5 相关实验-仪表盘-学习笔记-表盘组件练习与使用总结】1、概述2、实验环境3、参考资料-致谢4、自我提升实验效果5、代码练习-学习后拆解(1)头文件部分(2)绘制事件绘制表盘代码(3) 每一块部分绘制6、代码移植提升类…

Spring Security in Action 第十一章 SpringSecurity前后端分离实战

本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringSecurity相关知识相关知识,打造完整的SpringSecurity学习步骤,提升工程化编码能力和思维能力,写出高质量代码。希望大家都能够从中有所收获&#…

nginx正向代理的配置和使用

nginx正向代理的配置和使用 nginx正向代理的配置和使用nginx正向代理的配置和使用安装包准备下载nginx安装包下载正向代理模块的包版本与模块对照表部署nginx服务上传nginx包和正向模块包解压,改名安装nginx配置正向代理创建nginx用户检查nginx配置并启动nginx服务所在服务器验…

微服务02 Docker

Docker实用篇0.学习目标1.初识Docker1.1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署&#xff0…

实战绕过WTS-WAF的SQL注入

实战绕过WTS-WAF的SQL注入1.前言2.测试流程2.1.发现漏洞2.1.1.正常页面2.1.2.WAF警告2.1.3.非正常页面2.2.判断字段数2.2.1.非正常页面2.2.2.正常页面2.3.判断回显位2.4.信息收集2.4.1.数据库版本2.4.2.数据库名2.5.判断数据库表2.5.1.WAF告警2.5.2.获取表2.5.3.burp suite测试…

龙曲良 Tensorflow —— tensorflow高级操作(自用)

目录 一、合并与分割 1.1 tf.concat (合并) 1.2 tf.stack (增加新维度) 1.3 tf.unstack (一个一个拆分) 1.4 tf.split (均分拆分) 二、数据统计 2.1 tf.norm(默认二范数) 2…

WebRTC(一):三种架构和基本原理

文章目录一、三种架构二、为什么SFU最为常用?一、三种架构 webrtc大致可以分为三种架构: MESH mesh架构需要所有参与连接的peer简历和所有其他peer的媒体的连接,如图一。 该架构需要n-1个上下行,以此带来的带宽消耗&#xff08…

家政服务小程序实战教程02-创建模型应用

我们在上一篇中介绍了数据源的设计及创建方法,本篇我们就根据我们创建好的数据源来设计功能。 按我们的需求分析,系统管理员来审核数据,要想审核数据需要给管理员提供一个管理后台。微搭中的管理后台是通过模型应用来解决的。 登录控制台&a…

我用python/C++调用ChatGPT自制了一个聊天机器人

目录1 ChatGPT完整版2 Python/C调用ChatGPT2.1 获取API秘钥2.2 测试API功能2.3 设计简单UI3 聊天问答1 ChatGPT完整版 2015年,OpenAI由马斯克、美国创业孵化器Y Combinator总裁阿尔特曼、全球在线支付平台PayPal联合创始人彼得蒂尔等硅谷科技大亨创立,公…

chatGPT都可以干什么呢?来一睹风采 (送账号)

文章目录1. 写代码2. 写文案3. 写剧本4. 写歌诗5. 写报告6. 查公式7. 写对联8. 写文章9. 做表格10. 做计划11. 等等1. 写代码 2. 写文案 3. 写剧本 4. 写歌诗 5. 写报告 这妥妥的翻译文,数据完全不对。 6. 查公式 傅里叶变换的时域性质有如下几点: 对…

JAVA集合专题4 —— Map

目录Map接口实现类的特点Map接口的常见方法Map六大遍历方式Map练习1code编程练习2code编程练习3思路codeMap接口实现类的特点 Map与Collection并列存在,是Map集合体系的顶级接口Map的有些子实现存储数据是有序的(LinkedHashMap),有些子实现存储数据是无…

【量化交易】 量化因子 动量类因子

量化因子 - 风险类因子计算 5日乖离率 BIAS5 (收盘价-收盘价的N日简单平均)/ 收盘价的N日简单平均*100,在此n取5 60日变动速率(Price Rate of Change) ROC60 ①AX今天的收盘价—20天前的收盘价 ②BX60天前的收盘价 ③…

React-Router

版本5安装:npmnpm install react-router-dom5 -Syarnyarn add react-router-dom5import ReactDOM from "react-dom/client";// react router适用于web和原生项目,我们在web项目中使用,所以需要引入的包是react-router-dom import {…

Idea 安装 Sonar 插件提升代码质量

目录 0. 环境说明 1. Sonar 简介 2. IDEA 配置 Sonar 0. 环境说明 Java 1.8IDEA 2022.3.1SonarLint 7.4.0 1. Sonar 简介 在多人协通的软件开发过程中,代码风格和代码质量对于软件的整体交付是十分关键的。这时我们可以利用 Sonar 插件,对代码进行扫描…

Spring MVC注解Controller源码流程解析--HandlerAdapter执行流程--上

Spring MVC注解Controller源码流程解析--HandlerAdapter执行流程--上引言RequestMappingHandlerAdapter方法参数解析器方法参数名解析器类型转换体系简单的使用演示数据绑定器工厂定制化修改DataBinder获取泛型参数ControllerAdvice与InitBinder注解控制器方法执行流程Controll…

C语言(可变参数:stdarg.h)

目录 一.使用可变参数 1.提供一个使用省略号的函数原型 2.在函数定义中创建一个va_list类型的变量 3.用宏把该变量初始化为一个参数列表 4.用宏访问参数列表 5.使用宏完成清理工作 二.va_copy 三.实例 一.使用可变参数 该头文件提供类似接受可变数量参数的宏&#xf…