如何在不改变gradle中的版本的情况下获取依赖关系的最新快照?

时间:2017-02-05 23:43:15

标签: gradle build.gradle

我构建了一个我在nexus存储库上部署的库。此快照经常更改,因此并非每个更改都会获得新版本号。我的问题是,如果不更改使用此库的项目中的版本号,我将无法获取最新代码。我试过" - 刷新依赖"我还尝试通过在" \ caches \ modules-2 \ files-2.1 \ my.dependency"中删除此依赖项的文件夹来清除缓存中的依赖项。
我也试过这个:

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

有人知道如何强制成绩下载最新的依赖状态,尽管版本号没有变化吗?

1 个答案:

答案 0 :(得分:21)

首先确保您的快照具有正确的版本格式:

<template name="options">
  <div class="twin-group js-radioGroup" data-id={{_id}}>
    <ul class="upShift">
      {{#each values}}
        <li>
          <label class="twin-item">
            <input type="radio" value={{this.result}}>
            <span class="radio-label">{{this.label}}</span>
          </label>
        </li>
      {{/each}}
    </ul>
  </div>
</template>

如果您没有使用dependencies { compile group: "groupId", name: "artifactId", version: "1.0-SNAPSHOT" } 后缀(或者您没有使用Maven存储库),则必须指出您的依赖关系正在发生变化:

-SNAPSHOT

然后你必须告诉Gradle不要缓存更改的依赖项,否则它只会每24小时更新一次:

dependencies {
    compile group: "groupId", name: "artifactId", version: "1.0", changing: true
}

如果您还将依赖项配置为动态版本,请执行以下操作:

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

然后你必须添加:

dependencies {
    compile group: "groupId", name: "artifactId", version: "1+", changing: true
}

请注意,这可能会减慢您的构建速度。

如果这没有用,请删除configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds' } 目录的相关部分,或者再删除整个目录。

如果这对两者都没有帮助,我担心它会成为您存储库方面的问题。