抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

前言

这里是记录一周的学习情况,了解到的新知识,新想法、新见解的地方,每周我都会来整理一下、调整一下。期望自己能够有改变。

上班生活

这周也进入了公司的开发状态了,也了解到了很多新的东东,日志监控平台、自动化部署、数据库开发规范等,对技术的收获还是很多的。不过每天上下班挤地铁,大小周还是有点烦人的/(ㄒoㄒ)/~~,下面就来学习一下相关知识把。

编程知识

gitlab-ci自动化部署工具

通过在项目根目录下配置.gitlab-ci.yml文件,可以控制ci流程的不同阶段,例如install/检查/编译/部署服务器。gitlab平台会扫描.gitlab-ci.yml文件,并据此处理ci流程。

通过gitlab-ci,我们提交完代码后就可以不用管了,ci流程会自动部署到测试或集成环境的服务器。很大程度上节约了开发时间,不然我们还要在开发和部署之间的状态切换。下面就来了解一下gitlab-ci.yml中常用的关键字把!

  • stages
  • stage
  • script
  • tags
stages &stage

stages定义在YML文件的最外层,它的值是一个数组,用于定义一个pipeline不同的流程节点。

stage是一个字符串,且是stages数组的一个子项,表示的是当前的pipeline节点。

1
2
3
4
5
stages: # 分段
- install
- eslint
- build
- deploy
script

它是当前pipeline节点运行的shell脚本(以项目根目录为上下文执行)。

这个script是我们控制CI流程的核心,我们所有的工作:从安装,编译到部署都是通过script中定义的shell脚本来完成的。

如果脚本执行成功,pipeline就会进入下一个Job节点,如果执行失败那么pipeline就会终止

tags

tags是当前Job的标记,这个tags关键字是很重要,因为gitlab的runner会通过tags去判断能否执行当前这个Job

依赖Jar包中的版本更新问题

在引用内部库中的时候,经常会出现需要更新依赖的库,但这个时候你sync并不能及时将最新的依赖库拉下来,这是因为gradle为了加快构建的速度,对依赖的库会缓存24小时,缓存之后就不在请求远程仓库了,这个时候我们可以设置一下。

1
2
3
4
configurations.all {
// check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

在开发依赖库发布的时候最好加上SNAPSHOT快照来发布,这样发布的时候每次都可以覆盖旧的依赖版本,这样不用每次都修改版本号。

生活知识

海姆利克急救法

如果是成人,救护者站在受害者身后,从背后抱住其腹部,双臂围环其腰腹部,一手握拳,拳心向内按压于受害人的肚脐和肋骨之间的部位;另一手成掌捂按在拳头之上,双手急速用力向里向上挤压,反复实施,直至阻塞物吐出为止。

当无人在场时

可采用上图所示的方法,稍稍弯下腰去,靠在一个固定的水平物体上(如桌子边缘、椅背、扶手栏杆等),以物体边缘压迫上腹部,快速向上冲击。

《被讨厌的勇气》

TODO 代写

评论