gpt4 book ai didi

maven - 有关快照的Gradle缓存问题的解决方案?

转载 作者:行者123 更新时间:2023-12-03 03:46:29 24 4
gpt4 key购买 nike

将快照发布到artifactory / mavenLocal时,项目将不会获取最新的快照。这需要从〜/ .gradle / cache中删除jar

Maven具有为快照设置时间戳的功能。 gradle缓存如何工作?

最佳答案

解决问题时,需要考虑两件事:

  • Gradle如何处理/识别快照
  • 如何覆盖Gradle的默认行为

  • 有关Gradle如何识别/处理快照的一些背景

    默认情况下,Gradle将每24小时刷新一次快照依赖项。

    如果版本以 -SNAPSHOT后缀结尾,Gradle将自动将依赖项识别为快照。例如:
    dependencies {
    compile group: "aGroup", name: "anArtifact", version: "1.0-SNAPSHOT"
    }

    但是,如果依赖项的版本字符串不以 -SNAPSHOT结尾,则需要告知Gradle它是带有 changing参数的快照。例如:
    dependencies {
    compile group: "aGroup", name: "anArtifact", version: "1.0", changing: true
    }

    覆盖Gradle下载快照的频率

    覆盖默认的24小时策略的唯一机制是将Gradle配置为更频繁地使依赖项缓存无效(并因此下载新的SNAPSHOT)。例如:
    configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
    }

    动态版本化的依赖项缓存将需要单独配置

    如果您使用任何动态版本,例如:
    dependencies {
    compile group: "aGroup", name: "anArtifact", version: "1.+", changing: true
    }

    您需要分别为这些依赖项配置缓存无效,如下所示:
    configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
    resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
    }

    建立绩效影响

    需要注意的一件事是,缓存依赖项的时间越短,Gradle检索该 Artifact 的频率就越高。如果完全禁用了缓存,则它将在每次执行期间获取依赖项。

    关于maven - 有关快照的Gradle缓存问题的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55648256/

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