近期项目交接,接手了个SpringBoot项目.生产环境里,jar包是通过软链接做成linux服务来启动和停用. 然而,每次通过jenkins构建发版,项目构建完毕,还要手动再去重启服务. 听交接的同事说,可能是有一个钩子阻止服务停用了. 但是,我还是有点纳闷的,既然阻止了服务停用,按道理服务是还能再运行的,不可能构建完了服务就不可用,然后还要手动重启. 随后,我就开始了漫长的搜索……最后还是找到答案了. 步骤重现: jenkins构建项目,执行脚本,停用服务 service crm-base…
检查:VS中,这个文件右击属性,查看生成操作.如果是“无”,改为“内容”.再重新发布就没问题了. 想看发版出来的内容包括哪些,可以从“发布”--“应用程序文件”查看…
背景 每次到网页里手动发版有点烦,写个脚本来提高开发效率. CFG 在 jenkins 设置里获取 API TOKEN. 把 host 和账号密码拼接起来就可以通过鉴权. const token = { user: '', password: '', } const host = 'jenkins.xxx.cn'; const basicUrl = `http://${token.user}:${token.password}@${host}`; BUILD 调用 jenkins 提供的 jen…
前言 在生产环境,我们为了降低发版风险,一般都只做增量发布,不做全量发布. 除非项目只有一到两人开发,对时间线和代码脉络结构一清二楚,才可全量发布. 然而增量发布也是有一定隐藏陷阱在里面的,以下就是笔者的项目组在增量迭代过程中一起遇上到陷阱 陷阱1 : 匿名内部类 如果修改的java源码中,有匿名内部类,那么最终在WEB-INF/classes/.......package....../Person.java 下面会生Person$XXX.class的匿名内部类, 但是我们在提交svn时,一般不…
第一篇. 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑.接下来的一系列文章将介绍我设计的自动化发版系统! 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenkins job实现,我认为这样很不好.弊端如下: 如果你有N个环境,你将会有N次编译.N次配置.产生N个包.发布N次......: 配置变更困难,可读性比较差: 版本发布总体时间长等等. 事实上我们需要: 一次构建多次发布: 具备包仓库,长期存储并备份成品包: 具备配置管理系统,实现集中管理配置且维…
背景 SpringCloud分布式项目,部署在多个节点上.一般的发版方式是,使用Kill -15 pid,逐一地关闭.部署.重启. 但中间涉及到一个问题,当执行kill命令时,服务虽然关闭,但Eureka那里依然保存着这台服务器的IP,请求依然会跑到这台服务器上. 直到持续数十秒后,Eureka将该服务的IP剔除掉. 如果请求量大,会导致大量请求在发版的过程中出现异常.所以要想到一个更优雅的方式来部署服务. 方案一: 调用Eureka的接口,让Eureka自动剔除该服务IP. 获取服务的AppI…
转载自:https://www.cnblogs.com/wellful/archive/2004/01/13/10604151.html 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑. 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenkins job实现,这样很不好.弊端如下: 如果你有N个环境,你将会有N次编译.N次配置.产生N个包.发布N次......: 配置变更困难,可读性比较差: 版本发布总体时间长等等. 事实上我们需要: 一次构建多次发布:…
问题背景 大一点的公司都会建立一套规章流程来避免低级错误,例如合入代码前必需经过同行评审:上线前必需提测且通过 QA 验证:全量前必需经过 1%.5%.10%.20%.50% 的灰度过程.尤其是最后一步,需要严密的监控发版指标来保证新版本的质量,如果与主力版本的指标相比有异常变动,就需要及时停止放量并分析原因. 一个版本的重点观察指标,除崩溃率外有小 20 项,分布在系统的 10 多个页面,且每个指标均需要指定多达 6-10 个过滤条件,最常用的包括版本号.端类型 (PC/ Mac/Androi…
之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使用root用户启动,则主目录为/root/.jenkins [root@code-server ~]# ll -d /root/.jenkins/ drwxr-x--- 14 root root 4096 Dec 18 15:22 /root/.jenkins/ 2)可以在系统环境变量里手动设置je…
随着移动互联网的发展,手机银行凭借低成本.操作简单.不受时间空间约束等优势,正逐步替代传统的网银交易方式.越来越多的银行开始了“业务移动化”转型之路,“手机APP”已经成为企业价值传递和关系维护的关键纽带,客户争夺的主战场已转向移动端,事实上手机银行的用户比例早已超越了网银用户. 但是伴随着银行APP承载的业务需求日益增多.版本迭代速度不断加快,以“手工测试”为基础的测试体系,已很难满足业务对测试效率和质量的要求.APP 测试急需完成从“纯人工”到“人机协同”的范式转换. 一.银行 APP 的质…