jenkins学习笔记:我们的java项目是这么发布的

     2022-03-23     715

关键词:

 

发布拓扑

1. 拓扑图

技术分享

 

2. 流程说明:

  • Git 插件从 Git Server 上面拉取源代码.
  • Maven 插件将源代码安装我们设定的指令进行编译打包,存放于项目的 WorkSpace.
  • Publish Over SSH 插件将 WorkSpace 中准备好的数据发送到跳板机
  • 跳板机上面的发布脚本将数据同步到 Target Server

 

3. 细节说明

Maven 如何对代码进行编译打包,这个是开发来提的。

Jenkins 可以直接将项目发布到 Target Server,但是我们的生产服务器是好几个内网网段。所以思路是:先将代码发布到跳板机,跳板机上面有一个 shell 脚本,脚本内容无非是 scp,rsync 工具,将数据同步到目标服务器指定的路径。

 

我们的配置

1. 参数配置

为了在底层保留每次构建的代码,我们创建了两个参数:版本号。 这样可以让底层 jobs 目录中的项目的目录结构很清晰,版本号用的是日期,更加好区分。

技术分享

 

2. 源码管理

配置 Git Repository URL,构建的时候 Jenkins Server 会从仓库拉取代码到 $JENKINS_HOME/workspace/$JOB_NAME 目录下面。 (ps:JOB_NAME 是 Jenkins 内置环境变量

 

3. 构建环境

我选择每次构建之前都将项目的 workspace 中的内容删除,彻底重来。

 技术分享

 

4. Pre Steps

构建之前准备环境。

如果选择 "Execute Shell", 那么就把自己想在构建之前准备的文件、目录等等 shell 命令写出来。

 

5. Build

开始构建。

技术分享

第一行指定 pom文件,默认为 pom.xml. 第二行指定 maven 的执行序列。具体可以了解 maven 的相关知识,这个命令开发来定

 

6. Post Steps

开始发布。

这一步的目的是在Build 之后,数据的二次整理,为『构建后的操作』做准备。所以,如果不需要再次操作,构建好的数据可以直接发布,那无需这一步的设置。

 

7. 构建后的操作

增加构建后的操作步骤 --> Send build artifacts over SSH. 用 Publish Over SSH 这个插件的功能完成最后的发布工作。

这一步是将在 Jenkins Server 上构建好的数据推送到 Jump Server ,然后又在 Jump server 上面执行一个shell 脚本,将数据推送到 Target Server,脚本内容就是rsync 或者 scp。

 

(1)推送构件好的数据

技术分享

 

(2)执行推送脚本

技术分享

说明:

  • 将 update.sh 推送到跳板机的 脚本存放目录下
  • 执行 update.sh 这个内容rsync 为主的脚本,将数据同步到 target,后面是脚本的参数:项目名称,灰度发布,项目版本

 

参数构建

1. 点击对应的项目

2. 选择 ”用参数构建“

技术分享

 

3. 输入参数值

技术分享

这样就可以实现参数化构建项目,如果选择 ”立即构建“,则这里的参数是 设定时候给定的 ”默认值“。

 

以上.

 

《java学习笔记(1---13-4)》

【1】问题:1.什么叫做面向过程?2.什么叫做面向对象?解答:1:所谓的面向过程就是我们是一个执行者,我们要开发一个项目,这个项目要求要实现很多功能,作为执行者的我们就需要去一个一个的找这些功能,然后组装,最... 查看详情

jenkins学习总结——jenkinsx入门实践

概念JenkinsX是基于Kubernetes的持续集成、持续部署平台。也是Jenkins的子项目。JenkinsX旨在使程序员在研发过程中能够轻松遵循DevOps原理和最佳实践。介绍JenkinsX是研发过程和工具的选择,以及将所有东西包装成一个易于学习和使用... 查看详情

jenkins学习总结——jenkinsx入门实践

概念JenkinsX是基于Kubernetes的持续集成、持续部署平台。也是Jenkins的子项目。JenkinsX旨在使程序员在研发过程中能够轻松遵循DevOps原理和最佳实践。介绍JenkinsX是研发过程和工具的选择,以及将所有东西包装成一个易于学习和使用... 查看详情

java异常机制学习笔记一

什么是异常?  异常,不正常也。Exception是Exception event的缩写,因此异常是一个事件,该事件发生在程序运行时。异常会影响程序的连续性,使程序中断。  在Java中,一切皆对象,所以要定义异常,也需要使用对象。异... 查看详情

学习-17

1.什么是Jenkins?Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行(持续集成)2.为什么要使用jenkins3.如何安装jenkins3.1下载jenkins的... 查看详情

jenkins学习笔记:我对jenkins的宏观认识

 Jenkins是一个持续构建的系统,通过一周的了解熟悉,其逻辑似乎很简单。   Jenkins拓扑 Jenkins逻辑  1.从代码库拉取代码。2.处理代码。对于需要编译的程序,需要进行处理,然后再进行下一步。比如对... 查看详情

设计模式学习笔记之开山篇

之前的一年多时间,受设计模式无用论这种影响,学习Java时候跳过了设计模式的学习,现在看来是大错特错的事情,看了Java编程思想很多jdk的设计都用了很多设计模式看的不是很明白,为什么这么写?明明很简单的代码为什么... 查看详情

pipenv学习笔记(代码片段)

前言在学习了Python、Java后,会发现Java有很成熟的项目构建工具,以前是使用xml的Maven,现在又出现了使用groovy的Gradle,这样的构建工具能够自动处理项目的依赖。而学Python的时候,我们往往只会用pipinstall,这样安装好的模块是... 查看详情

jenkins学习笔记:很简单的发布一次

...取一些文件,然后推送到Targetserver的某个目录. 准备1.Jenkins需要安装的插件:『PublishoverSSH』 2.全局配置:系统管理-->系统设置-->PublishoverSSH 创建项目1. 新建-->EnterItemName-->构建一个自由风格的自由风格的... 查看详情

jenkins使用学习笔记

Jenkins安装Jenkins是用Java语言开发的系统,首先要确定服务器上已经安装JDK或者JRE。安装方式一直接运行java–jarJenkins.war,在浏览器中输入 http://localhost:8080即可。安装方式二安装Tomcat。添加环境变量JENKINS_HOME,该变量为jenkins... 查看详情

字节跳动学习笔记:java简历专业技能

第一部分项目+自我介绍首先上来简单做一下自我介绍?然后让介绍简历里的项目,说下项目里的难点,技术架构。平时开发过程中都遇到过哪些难题?平时都这么和同事沟通?第二部分java基础方面首先还... 查看详情

通过jenkins部署java项目

笔记内容:通过Jenkins部署java项目笔记日期:2018-02-2826.9部署java项目-创建私有仓库26.10部署java项目-下载zrlog源码26.11安装配置tomcat26.12部署java项目-安装maven26.13安装插件26.14构建job26.15发布war包部署java项目-创建私有仓库Jenkins大多... 查看详情

java之jvm介绍(学习笔记入门)(代码片段)

为自己的学习笔记,图形说话java之所以这么强大是因为跨平台,最直接的就是jvm,每天我们都是写代码,CV大法。java->lcass-->jvm是如何演变呢?中间发生了啥?一、整个java的演变 图直观的看到如下:从... 查看详情

jenkins学习

...频教程:https://www.bilibili.com/video/av24735835/有个项目用到了jenkins话说刚开始我还不知道什么jenkins后来一看视频原来以前弄过。我还配置了jenkins。 jenkins是一个自动化的打包集成工具。大白话解释:jenkins就是一个war包。我们部... 查看详情

14.2-全栈java笔记:javaswing创建窗口,原来这么简单!!!

上节我们聊到GUI(GraphicalUserInterface)的概念,并学习GUI编程中主要需掌握两个包,分别是:AWT和Swing,本节我们会通过Swing程序中常用的类和控件来实现第一个窗口。 javax.swing.JFrameJFrame在GUI中为一个窗口对象,继承于Frame。JF... 查看详情

爬虫学习笔记http请求详解

上篇博客里面写了,爬虫就是发http请求(浏览器里面打开发送的都是http请求),然后获取到response,咱们再从response里面找到想要的数据,存储到本地。咱们本章就来说一下什么是http请求,它里面都有哪些东西,我们在写爬虫... 查看详情

jenkins笔记

1.Jenkins是什么?他是一个开源的自动化服务器,持续集成工具。由Java和上百个插件组成,支持编译,测试,部署任意的自动化项目。2.怎么安装Jenkins?方法一:从官网https://jenkins.io/index.html 首页右侧有Nativepackages,选择MacOSx... 查看详情

我们如何在jenkins上强制为团队项目编写java注释?

...团队项目java代码中强制使用注释。由于我们已经在使用Jenkins,因此我们最好使用一个插件,它可以根据是否写入注释使构建成功/失败。选项包括使用Checkstyle,githooks或SONAR插件来强制执行相同的操作。感谢任何指针或提示来设... 查看详情