文章目录

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

0.前言

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

环境背景

环境 版本
电脑 MAC M2 max
docker Docker 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 anytools {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中就行了。

Docker-安装Jenkins-使用jenkins发版Java项目相关推荐

  1. Jenkins持续集成实践之java项目自动化部署

    关于Linux安装Jenkins可以参考我的这篇博文Ubuntu16.04环境安装jenkins 1.安装部署插件 进入插件管理,并搜索该插件Deploy to container Plugin进行安 ...

  2. Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)

    实现流程: 手动部署Java项目至后端Web集群 1.搭建Nginx+Tomcat集群架构. 2.开发提交Java源代码至Gitlab仓库. 3.手动获取Java源代码,然后使用Maven进行编译. ...

  3. Docker 安装 Redis 容器 (完整详细版)

    Docker 安装 (完整详细版) Docker 日常命令大全(完整详细版) 1.获取Redis镜像 Docker如果想安装软件 , 必须先到 Docker 镜像仓库下载镜像. Docker 镜像仓库 ...

  4. docker host模式拿到nginx远程ip端口_FastDFS基于Docker安装,免采坑版

    暂且不说Docker在生产环境的性能如何,单就在学习新技术的过程中能够快速构建环境这一项来说,就值得推荐你尝试使用.本文带大家基于Docker来安装FastDFS服务. 即便你对FastDFS的安装不 ...

  5. docker安装最新版Jenkins:拉取镜像/创建容器

    拉取最新版Jenkins镜像: 创建Jenkins容器: 需要进入到容器内部获取初始化密码:

  6. Jenkins 前端 自动化发版/CICD

    核心代码脚本: #!/bin/bash -il echo ${branch} echo ${branch} current=${branch} online="release" i ...

  7. 最简单的Jenkins+Tomcat+Gog(Git)解决Java项目自动化部署

    网上很多关于jenkins做项目的自动化部署,各有各的方法,层出不穷,下面是我在自己的项目上做的自动化部署,很简单,可当做入门. 声明一下项目环境:非maven项目,平常直接打包成war包丢进tomc ...

  8. openwrt 软路由 docker安装青龙面板(基础版)

    置顶:无条件部署的小伙伴可以直接上车,名额有限,手动获取 JD  CK提交版 必要准备: 务必先下载好 京东.京喜.京东极速版三个app并开启以下活动(有些需要选择种植或者生产的物品自行选择即可,千万 ...

  9. Docker 安装 Nginx 容器 (完整详细版)

    下载Nginx的docker官方镜像: docker pull nginx:latest 配置docker-compose.yml: docker-compose.yml: version: &quo ...

最新文章

  1. 没有可用于当前位置的源代码
  2. [BZOJ 4571][Scoi2016]美味(主席树)
  3. matlab chirp函数模糊函数,8个OFDM-Chirp波形的时频域图及自(互)模糊函数图
  4. Asp用FSO读写文件
  5. delphi listview动态添加图片_Java 添加PDF图章(印章)——图片图章、动态图章
  6. 论文阅读笔记——拥塞控制算法PCC Vivace
  7. Visio软件方案UML选择
  8. Win11截图键无法使用怎么办?Win11截图键无法使用的解决方法
  9. 2020计算机组成原理性考答案,中国文化通论、计算机组成原理试题
  10. unity给头发添加物理_U3D实时渲染教程之角色头发各向异性表达(上)
  11. 企业入职测试题目及答案_[企业入职性格测试题以及答案信息] 新员工入职性格测试题...
  12. Pycharm新建文件时,如何设置自动添加作者时间等信息
  13. 从输入URL到页面加载的过程?由一道题完善自己的Web前端知识体系!
  14. Docker容器之间数据传输
  15. TCP的三次握手和四次挥手
  16. 165页最全银行IT核心系统研究框架
  17. python 计算器 eval ctf_python 的eval函数
  18. 2020年全球吸附分离材料行业现状、竞争格局与发展环境分析,各国政策扶持,市场空间大「图」
  19. 怎么用C++编个网站
  20. 众贷网满月死亡 P2P网贷业将现倒闭潮?

热门文章

  1. 热烈祝贺2021灵江国际钢琴大赛暨维也纳金色大厅之旅在沪启动
  2. Leetcode——Generate Parenthese
  3. FullGC频繁,线程数持续增长排查
  4. 区块链必修课:DAG区块链
  5. 华为云会议SmartRooms:把高科技运用到极致的智能云会议
  6. 仓库温度湿度控制措施_仓库温湿度控制管理规定
  7. 【Matlab】在Java中调用matlab函数
  8. Qt之自定义控件(滑动开关按钮)+源码
  9. Java面试遇到的问题(更新中---)
  10. php如何判断浏览器类型,php判断当前浏览器类型