维护一个很陈旧的项目,前后端不分离,套的jsp,每次发版是根据需求号创建的分支号合版,然后对指定需求号增量发布。
第一次接触增量发布。
第一次使用IDEA开发工具
第一次搞jsp,jq
。。。
那真是一个头两个大
复杂的业务,完全没考虑命名空间问题,还没有注释,所有的事件绑定可能是绑定到多个class中的一个,也可能是某个id上,至于究竟是哪个,自己一个个找吧,引入的js文件都是10个起步的,开发效率全靠运气!
而且所有的pdf文件,图片,不同版本的文件,图片全部存在项目里且存放完全没有规律,同一个名称的文件可能存放多个目录,究竟使用的哪一个,先找到指定的js文件吧,再从js文件里找到用的是哪个名称。。。如此种种,“罄竹难书”!
IDEA启动jsp项目,要先配置mavan,tomcat,还有.pom文件的修改,具体怎么配的我不知道,反正后端同学帮我一通操作弄了很久,我当时就是眼花缭乱一副没见过世面的样子。
然后启动项目是要点击工具栏中build里的rebuild project对项目进行预编译,然后再点击右上角两个绿色启动按钮中的一个,第一个是常规启动,第二个小蜘蛛是debugger模式启动,启动之后第三个按钮会出现红色的实心方框,并且会自动打开浏览器(localhost://xx)如果更改一些资源文件的话需要重新编译,那就要先点击这个红色的实心方框停止本次服务,然后再rebuild,然后再点击绿色启动按钮,等待启动成功,然后在浏览器需要刷新页面才能看到改变后的效果。
git相关:
创建分支,修改分支,推送分支相关
先在gitlab的master创建和自己本次需求号一致的分支
在IDEA右下角有个git分支的标识,点击后,在remote branch目录下找到自己创建的远程分支,单击后选择checkout,就切位自己分支了,然后就可以修改东西了
修改完之后,通过右键点击项目名称找到git,然后选择第一条commit directory就可以看到自己改动的文件了
检查无误之后,添加备注就可以继续执行commit了,如果有冲突就双击冲突文件进入文件解决冲突
冲突解决完毕之后再继续commit
然后点击IDEA右下角的git,会看到lcoal branch目录下的自己的分支右侧多了个45°方向向上的右箭头,这是在告诉你该分支可以push到远程了,点击push即可同步到远程分支
cherry-pick模式实现合并公共部分代码
增量发布就是可以只发布指定分支号/需求号下代码
按需求号创建分支,存在多人共同使用一个分支的情况,因此只想将自己开发的代码合并到uat或者master时,需要使用git的cherry-pick方式。
右键项目名称找到git->show-history->在version-control面板里点击branch右边的head可以找到自己的提交记录(也可以直接在IDEA最底下一行小工具栏里直接点击version-control进入),然后选中要合并的记录(多个或者单个)选择cherry-pick即可。
然后当前所在分支(uat或者master上就有了你修改的代码),只不过这是本地的,需要你将该分支(uat或者master)push到对应的远程分支即可。
发版
登录jekins,找到对应项目,然后在jekins里左侧菜单选择build with paramaters,对应右侧出现和jira号里状态一直的status,初始为coding,点击下方构建按钮,左侧会出现构建的进度条,点击时间进入参数配置界面,点击左侧菜单中的console output在右侧面板里出现的很多英文字符中点击高亮的input xx 自动进入参数最终确认,将自动出现在配置输入框里的原有需求号(分支号)都删除只保留自己的需求号,再点击确认按钮才算真正的开始构建了,等待构建完成,意味着对应环境的发版算是完成了,进入jira号刷新页面看到里面的状态自动变为coded了,表示指定环境的发版完成了。
然后发邮件给测试就行了。
这繁琐的自动化流程,让我也是大开眼界。。。
注意:
1.远程分支在IDEA里直接在master分支上执行git pull不一定能把新分支拉下来,需要使用git fetch才能拉下来,也可能是我的IDEA版本太低了。
2.构建的时候如果失败,可以看看之前commit的东西是不是在注释里写错了分支号(需求号),如果写错了,代码能正常提交,但是自动化构建是会阻断的,猜测是提取了注释里的分支号做判断。