基于jenkins的增量发布
来源:互联网 发布:数码兽网络侦探攻略 编辑:程序博客网 时间:2024/06/15 23:41
持续集成之增量发布
jenkins 提供了持续集成的功能,但是并没有提供增量发布的功能(也许是我没有找到合适的插件的原因)。但是jenkins提供了比较完备的自主集成的接口,可以在jenkins基础上实现自己发布的要求
1. 增量发布流程
2. 准备工作
进入到jenkins的系统配置
在系统配置中,需要配置 内容有 jdk路径
版本管理有git cvs,svn等都可以配置
编译工具ant和maven
下载Publish over SSH 插件(主要用于通过ssh命令传递文件和执行shell脚本)并配置如下:
3. 增量发布配置
从svn上更新文件这个比较简单,这里主要是从这之后的操作进行说明。
svn更新之后,首先需要进行编译。这里编译一般有几种方式,一个是用ant,一个是用maven。鉴于我们项目中一般很少使用maven,这里就不做maven的说明。
新建项目
源码管理
构建触发器
触发器是出发构建行为的一个配置。可以有如下几种配置方式
1:当其他项目发生构建
2:定时构建
3:通过scm构建
这里采用的是定时构建的方式。如下图配置,则是每天晚上8点进行构建
构建
先添加一个ant构建,在添加一个执行windows批处理命令,结果如下:
通过这里的构建环境的配置,我们可以在构建发生前进行一些准备工作。我们不需要,就不需要配置。
用ant构建,会需要一个build文件,默认的会加载工作空间下的build.xml文件进行构建。这里不熟悉的同学可以看下ant相关文档。
当ant构建完成之后,执行windows批处理命令:
java -jar inte.jar "%JENKINS_HOME%" %JOB_NAME% %BUILD_ID%
这里其实比较简单,就是调用了java命令执行了一个jar文件。参数有三个,都是jenkins提供的参数。
"%JENKINS_HOME% 是jenkins的安装目录。得到的值“E:\ProgramFiles (x86)\Jenkins”
%JOB_NAME% 是构建的项目的名称
%BUILD_ID% 是构建的版本号
该jar的主要功能是这样的 :
1:解析“%JENKINS_HOME%\jobs\%JOB_NAME%\builds\%BUILD_ID%” 下的changelog.xml 文件,获得文件变更列表
2:获得该列表对应的文件。如果是java文件,则找到对应的编译后的class文件(需要处理内部类),如果是非java文件,则直接获得对应文件。
3:将所有文件按照编译后的目录结构,移动到该文件夹下
4:将该文件夹打包成changeFiles.tar文件并放置到工作空间下
send file or execute commands over ssh
增量发布包打完之后就是执行增量更新了。新增一个构建任务“send file or execute commands over ssh”并按照如下配置进行配置:
其中 exec command中需要填写:
/save/publish.sh dsideal_yy ${BUILD_ID}
这里是要执行远程主机上的 /save/publish.sh脚本。带有两个参数,第一个参数是要将增量文件拷贝到tomcat中的哪个工程下,第二个参数是构建的版本号。
到这里增量发布基本完成了。
inte 相关 包 下载地址 http://download.csdn.net/detail/sjbup/9669133
- 基于jenkins的增量发布
- jenkins+gitlab钩子+shell脚本基于git的tag实现App增量更新
- 基于git maven jenkins的自动构建发布系统三
- Jenkins+Git+PHP生成构建PHP项目的changelog以用于生成增量或减量打包发布
- 基于Heritrix的增量抓取
- 基于Heritrix的增量抓取
- 基于Jenkins的持续集成
- Jenkins基于Docker的安装
- 基于增量更新的协同过滤
- 基于增量的矩阵聚类
- 基于python实现jenkins自动发布代码平台
- ansible入门安装以及基于Jenkins搭建自动发布系统
- 【Jenkins教程一】基于Linux的Jenkins安装
- 根据变更增量发布
- Dll编译增量发布
- 两断小代码、改改就拿去做 git的增量发布
- 基于jenkins的持续集成测试
- 基于jenkins持续集成测试的意义
- hadoop安全机制
- 【Java】【Fulme】Flume-NG源码阅读之SpoolDirectorySource
- Ibatis动态(dynamic)查询
- 说说Java中的实例初始化器
- 法律导论
- 基于jenkins的增量发布
- 修改LoadRunner自带的示例程序端口号
- 如何判断文件有没有读取到尾部
- Android关机代码
- Android 通知栏Notification的整合全面学习
- Socket 与 WebSocket
- Matlab中的彩色图及colormap
- 关于读取Properties文件的相对路径问题,怎么写是正确的?
- 深入详解javascript之delete操作符