发布拓扑

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. 输入参数值

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

Jenkins 学习笔记(三):我们的JAVA 项目是这么发布的的更多相关文章

  1. Java学习笔记-----eclipse中建立Java项目并成功运行

    环境:WIN7 64位 +eclipse 2018 12version 具体方法:https://jingyan.baidu.com/album/9c69d48fefa53113c9024eb3.ht ...

  2. Jenkins 学习笔记(二):很简单的发布一次

    发布思路:从 github 拉取一些文件,然后推送到 Target server 的某个目录. 准备 1. Jenkins 需要安装的插件:『 Publish over SSH 』 2. 全局配置:系 ...

  3. Jenkins 学习笔记

    Jenkins 的内容网站蛮多的,但是一开始我看起来确实很费劲.似乎好多东西都是悬空的,没有把底层的信息交代清楚. 我把自己对于 Jenkins 的探索过程记录下来,如下. 目录 Jenkins 学习 ...

  4. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  5. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  6. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

  7. JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. Java IO学习笔记三:MMAP与RandomAccessFile

    作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和Fil ...

  9. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  10. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

随机推荐

  1. Java VS .NET:Java与.NET的特点对比

    一.前言 为什么要写Java跟.NET对比? .NET出生之后就带着Java的影子.从模仿到创新,.NET平台也越来越成熟.他们不同的支持者也经常因为孰弱孰强的问题争论不休.但是本文并不是为了一分高下 ...

  2. MATLAB中最基本函数plot()的用法

    1二维平面图形 1.1基本图形函数 画出一条正弦曲线和一条余弦曲线 1.1.1绘图参数表 y 黄- 实线. 点< 小于号 m 紫: 点线o 圆s 正方形 c 青-. 点划线x 叉号d 菱形 r  ...

  3. git上传本地文件到gitlab

    The repository for this project is empty If you already have files you can push them using command l ...

  4. 物联网设备是如何被破解的?分析一种篡改IoT固件内容的攻击方式

    随着智能硬件进入到人们的生活,人们的生活质量开始有逐步的提高,人们与智能硬件之间的联系更加紧密.同时,智能硬件的安全问题也必须引起高度重视,因为其直接影响到人身安全.社会安全和国家安全.   大家是否 ...

  5. Linux多线程编程——线程的同步

    POSIX信号量 posix信号量不同于IPC中的信号量  常用的posix信号量函数   #include <semaphore.h> int sem_init(sem_t* sem,i ...

  6. Unix:关于一个file在file system和disk中占用空间

    參考文献: Harley Hahns:Guide to Unix and Linux. Chap 24 -->首先要有的关键概念:the amount of "disk space&q ...

  7. 设计模式(8) - 迭代器模式(iterator)- 实现ArrayList和linkedList的迭代器

    上周六就開始写这篇博客,之后一直耽误了.到前天才開始写.今天醒的早,就把这部分整理一下. 本文内容參考易学设计模式和马士兵的迭代器模式的视频. 了解迭代器模式一个作用就是让你在使用 迭代器遍历集合类的 ...

  8. 导出Excel1 - 项目分解篇

    我们在全部的MIS系统(信息管理系统)中都能见到他.所以我们把这个通用功能提出来. 项目名称:车辆信息管理系统(中石化石炼) 项目负责人:xiaobin 项目时间:2006.12 - 2007.2 E ...

  9. C#基础知识 简单说明泛型的优点

    有关泛型的优缺点在网上有很多篇文章,也足以说明问题,我就不去复制粘贴了(而且内容有些多),由于记性不太好,所以自己做个简单明了的总结. 泛型的优点主要有两个: "性能" " ...

  10. plsql本机不安装数据库连接远程数据库

    用PL/SQL连接oracle数据库,不管是本地的还是远程的,一般都需要安装oracle客户端   如何达到不安装oracle客户端,又能使用PL/SQL工具?     1. oracle官网提供了i ...