我们有一个 Nexus 本地存储库管理器,用于处理我们所有的内部项目(以及外部存储库的镜像)。对于我们的内部项目,我们只保留最新版本的快照构建。例如,如果我们有 ProjectX 1.0、1.1 和 1.2-SNAPSHOT,那么一旦 1.2 发布,我们就会删除 1.2-SNAPSHOT,然后在 Nexus 存储库中保留 1.0、1.1、1.2 和 1.3-SNAPSHOT。
问题是我们的 Jenkins 服务器在其本地 .m2/repository 文件夹中拥有所有旧快照,并继续针对这些旧快照成功构建项目,而实际上它们应该失败(并且我们的开发人员应该修复他们的 POM 文件。)
如果 Nexus 存储库中不存在这些不需要的快照,是否可以配置 Maven(在 settings.xml 或 pom.xml 中)来删除它们?
如果不是,摆脱它们的最佳方法是什么? Jenkins 配置、cron 作业、其他选项?
谢谢...
在 Linux 上,您可以使用以下命令:
find $HOME/.m2/repository/ \
-name "*-SNAPSHOT" \
-type d \
-mtime +60 \
-print \
-prune \
-exec rm -r "{}" \;
解释:
- 找到任何有名字的东西
*-SNAPSHOT
在文件夹中$HOME/.m2/repository/
- 并且它必须是一个目录
- 并且在过去 60 天内不得进行修改
- 打印你发现的内容。如果你想测试该命令,请停在这里
- The
-exec
将删除该文件夹,-prune
告诉 find 之后不要尝试进入该文件夹。
- The
-exec
会删除里面的文件夹和文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)