【问题标题】:Artifactory and gradle, jenkins build space issueArtifactory 和 gradle,jenkins 构建空间问题
【发布时间】:2016-03-06 15:20:41
【问题描述】:

我使用 gradle、Jenkins 和 artifactory 服务器处理我们的项目构建和部署过程。我目前在我们的服务器上面临空间问题。我查看了服务器上的 artifactory 文件夹,artifactory/data/filestore 大小为@59GB。尽管我认为我们的项目不需要这么大的 jar。任何人都可以帮助如何减少文件存储大小以及它对项目构建的任何影响吗?

【问题讨论】:

    标签: jenkins artifactory


    【解决方案1】:

    导致 Artifactory 存储空间增长的原因有多种:

    1. 不清理未使用的快照版本
    2. Garbage collection 运行不够频繁或根本没有运行
    3. 未使用的第 3 部分依赖项堆积起来

    您应该从 Artifactory 手册中的 Managing Disk Space Usage 开始。它涵盖了垃圾收集、删除未使用的工件、手动清理等主题。

    更新

    如果消耗存储的大多数工件都是发布工件,您需要决定是需要将它们全部存储下来还是可以将它们移动到另一个地方。
    发布工件是指已通过 CI 管道并准备好投入生产的工件,它们可以是:

    • 在生产中部署的工件(私有/公共云)
    • 其他项目正在使用的库/模块的发布版本
    • 分发给客户的产品/库

    只要需要此类工件,例如因为其他团队依赖它们进行开发,您就应该将它们保留在原处。如果它们不再被使用,但您需要保留它们的副本,您可能希望将它们移动到另一个 Artifactory 服务器,该服务器将用作存档。

    更新 2

    要删除工件,您可以使用以下方法之一:

    1. 使用delete item REST API 删除工件/文件夹
    2. 使用delete builds REST API 删除完整的构建。如果您使用 Artifactory build integration,这很有用
    3. 创建自定义清理user plugin。您可以在Github 中看到一些示例。这需要 Artifactory Pro。

    【讨论】:

    • 我已经尝试了所有这些选项,但它们都没有减少空间。libs-release-local 存储库随着每次构建而增加。它目前被@60GB 占用。如何优化/缩小这个尺寸?
    • 您是否仅将发布工件存储在 libs-release-local 中?您需要保留所有这些,还是可以将它们移动到存档中(可能在另一个 Artifactory 实例上)?
    • 如何识别它是否只存储发布工件?我不需要所有这些。所以我可以归档它们
    • 感谢您的回答,我正在浏览 lib-release-local 树浏览器,它有 com--1.0.1,1.0.2 等文件夹,直到 1.0.311 .是否可以删除除最后 10 个版本之外的所有版本。同样适用于其他项目。
    • 只是为了更新,在 artifacts->Tree Browser->Repository Browser->libs-release-local-> 选择每个文件夹,如 -com-- 并删除版本. 是否有任何使用 gradle 脚本的自动化方式可用于删除旧版本?
    猜你喜欢
    • 2021-02-02
    • 2017-04-12
    • 2014-04-21
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2018-10-29
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多