gpt4 book ai didi

maven - 清理并维护 .m2 中的本地 Maven 缓存 Artifact

转载 作者:行者123 更新时间:2023-12-03 02:41:26 32 4
gpt4 key购买 nike

我的 Jenkins Slave 上有一个 .m2 存储库,它每天都在增长,目前接近 40 GB。

由于我有多个作业正在运行并从 .m2 中选择依赖项,因此我无法删除所有内容,但我可以在 .m2 的每个存储库中看到该 Artifact 的较旧且无用的版本。

maven 中是否有任何可用的方法,以便当作业触发 $mvn install maven 时,对于 .m2 内的每个存储库,仅将最新版本保留在 .m2 存储库中(示例版本控制 x.y.z.w 是增量的)?

最佳答案

如果您不关心每个构建中都会引入外部依赖项,则可以为每个作业使用私有(private) Maven 存储库(Maven -> 高级 -> 检查“使用私有(private) Maven 存储库”)并在开始时清理工作区你的构建。私有(private)存储库会在您的工作区中创建一个.repository,因此清理您的工作区将确保您从一个空的存储库开始。

如果您有许多共享的外部依赖项,那么您可能会使用更多的磁盘空间,因为它们多次出现在不同的存储库中。在这种情况下,您可以编写一个脚本,定期(使用诸如 cron 之类的任务调度程序)从共享存储库中删除未使用的文件,例如 this Stack Overflow answer .

但是对于共享 Maven 存储库要小心!默认情况下,Maven 不是线程安全的,因此下载同一 Artifact 的并发作业可能会使用不完整的下载。考虑使用Takari extensions使您的 Maven 存储库线程安全。

关于maven - 清理并维护 .m2 中的本地 Maven 缓存 Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44428362/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com