随着开发运维一体化的理念逐渐深入,持续集成流水线已经成为软件开发的标配。持续集成通过高度自动化的方式,使得构建发布变得非常简单,构建发布次数随之变的越来越多。我们在享受高频次的构建发布带来好处的时候,不得不面对构件物仓库存储开销不断增长带来的麻烦。如果使用Java作为开发语言,那大多会使用Nexus Repository Manager作为构件物仓库,Nexus在清理构件物方面已经帮我们考虑了这个问题。
我们清理的主要目标是snapshots版本重复覆盖的历史版本。
使用管理员账号登录到Nexus,点开“管理”菜单下的“Scheduled Tasks”,进入到计划任务功能页面。点击Add,新增一个定时任务.
Name项里可以随便填一个好记的名字。
Task Type是任务类型,内置了很多种任务,我们选择“Remove Snapshots From Repository”
配置“任务设置”相关参数:
- Repository/Grop:选择此任务是针对哪个仓库
- Minimum snapshot count:填写最小snapshot数量
- Snapshot retention:填写snapshot保留的天数
- Remove if released:release后是否删除snapshot
- Grace period after release:release后的宽限期,配合Remove if released使用
- Delete immediate:是否立即删除,不勾选的话,会先放到类似回收站的地方,可以恢复
配置“任务计划”相关参数:
- Recurrence:选择一种任务触发方式,可以选择“手动触发”、“执行一次”、“每小时”、“每天”等,如果是周期性的触发,还要在选择触发具体时间。
这样,我们就不用担心Nexus占用存储快速增长了。另外,前面的任务类型中看到,还有很多种其他类型的任务,可以根据自己的需要配置。