一、安装jenkins
注:这里不多说哈,百度遍地都是,安装方式不限。
二、jenkins创建项目
注:这里有个坑需要说一下,最开始我使用的是maven构建,但是如果按照我的这套方案会有一个编译死循环的问题,也就是说我本来是通过脚本来判断是编译构建新包或者是回滚旧包,但是问题来了,使用maven构建项目的话即使上边有脚本判断还是跳不出编译这一步,也就是说不管你是发布新版本还是旧版本都会重新编译一遍,那么坑的点是什么呢?发布的时候会编译两次,回滚的时候也是会编译两次,正常回滚就是不需要编译的直接将包传送过来启动即可,经过各种尝试后,终于找到问题点在哪?使用maven构建项目的话它自带的maven项无法关掉,所以就会造成上边脚本的编译和下边的maven编译重复,最终的解决方案:不使用maven构建项目,使用其他的比如我这里用的是自由风格,这样的话可以根据我们的需求来选择用不用maven编译,然后只需要在脚本里判断如果是发布新版本那么就调用maven编译并发布,如果是回滚操作那么将直接跳过编译即可。
重点:跳过编译你会发现回滚最多三五秒,这样的话对于我们运维来说缩短了回滚的时间,同时降低了用户访问失败的时长。
三、配置自动发布和回滚的脚本
1、丢弃旧的构建
注:以上配置根据自己需求调整就行。
2、参数化构建
3、字符参数
4、源码管理
5、构建环境
注:以上选项主要是为了统计编译构建和回滚的时长。
6、Build Steps
注:上图中的maven版本我这里是自己安装的这个版本所以配置选择了这个,如果没有提前配置的话就是默认选项。
7、执行shell
注:这里截图为了清楚就大概截一下图,具体详细信息在下边单独输出。