Jenkins 学习笔记(三):我们的JAVA 项目是这么发布的
发布拓扑
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 项目是这么发布的的更多相关文章
- Java学习笔记-----eclipse中建立Java项目并成功运行
环境:WIN7 64位 +eclipse 2018 12version 具体方法:https://jingyan.baidu.com/album/9c69d48fefa53113c9024eb3.ht ...
- Jenkins 学习笔记(二):很简单的发布一次
发布思路:从 github 拉取一些文件,然后推送到 Target server 的某个目录. 准备 1. Jenkins 需要安装的插件:『 Publish over SSH 』 2. 全局配置:系 ...
- Jenkins 学习笔记
Jenkins 的内容网站蛮多的,但是一开始我看起来确实很费劲.似乎好多东西都是悬空的,没有把底层的信息交代清楚. 我把自己对于 Jenkins 的探索过程记录下来,如下. 目录 Jenkins 学习 ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记
回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...
- JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- Java IO学习笔记三:MMAP与RandomAccessFile
作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和Fil ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
随机推荐
- 利用KindEditor实现公司通讯录的维护
引言: 本人所属施工单位,在建项目较多,通讯录是以项目为单位挂接在公司内部网站通讯录板块,以静态页面展示.一直以来都是项目部办公室通过电话.邮件等方式通知总部信息部门变更通讯录,日常维护的工作量较大. ...
- bzoj4974 字符串大师
4974: 字符串大师 Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 310 Solved: 155[Submit][Status][Discuss] ...
- 剑指 offer代码解析——面试题39推断平衡二叉树
题目:输入一颗二叉树的根结点.推断该树是不是平衡二叉树. 假设某二叉树中随意结点的左右子树的高度相差不超过1,那么它就是一棵平衡二叉树. 分析:所谓平衡二叉树就是要确保每一个结点的左子树与右子树的高度 ...
- hdu 1233 还是畅通project(kruskal求最小生成树)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- 腾讯云安全:移动 APP 安全行业报告
移动 APP 已逐步渗透入我们的生活,据统计,2016年,APP 发行数量仅电商.金融.游戏这三大类共计高达2万左右,国内移动互联网活跃用户数已经突破10亿,移动互联网这样快速的推移,移动互联网的安全 ...
- 从0开始做垂直O2O个性化推荐-以58到家美甲为例
从0开始做垂直O2O个性化推荐 上次以58转转为例,介绍了如何从0开始如何做互联网推荐产品(回复"推荐"阅读),58转转的宝贝为闲置物品,品类多种多样,要做统一的宝贝画像比较难,而 ...
- Uva 10550 Combination Lock
Sample Input0 30 0 305 35 5 350 20 0 207 27 7 270 10 0 109 19 9 190 0 0 0Sample Output13501350162016 ...
- Asp.Net Web API(四)
HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?在默认情况下,大多数异常都会转换为一个带有状态码500的内部服务器错误 ...
- JavaScript中DOM节点层次Text类型
文本节点 标签之间只要有一点内容都会有文本节点,包括空格 创建文本节点document.createTextNode() 可以使用 document.createTextNode 创建新文本节点 == ...
- iOS APP之间到跳转,以及热门应用,手机自带到应用跳转
应用之间的跳转 在第一个APP中,做如下操作:1.在info.plist文件中的"信息属性列表"下添加一项:"URL类型"; 2.点开"URL类型&q ...