为什么我的gradle构建没有加载最新的依赖项?

为什么我的gradle构建没有加载最新的依赖项?,gradle,artifactory,gradlew,Gradle,Artifactory,Gradlew,在我们的大多数gradle项目中,我们有以下依赖关系: compile('com.xxx.yyy.zzz:ch-commons:+') 根据我们对文档的理解,这应该是从我们的maven存储库中检索最新版本的ChCommons tl;dr 我们实际的“最新版本”是1.7.0-SNAPSHOT,但gradle实际上正在检索1.6.0-SNAPSHOT 整个故事 我们的存储库配置如下: repositories { maven { url 'https://local-repo/artifa

在我们的大多数gradle项目中,我们有以下依赖关系:

compile('com.xxx.yyy.zzz:ch-commons:+')
根据我们对文档的理解,这应该是从我们的maven存储库中检索最新版本的
ChCommons

tl;dr

我们实际的“最新版本”是
1.7.0-SNAPSHOT
,但gradle实际上正在检索
1.6.0-SNAPSHOT

整个故事

我们的存储库配置如下:

repositories {
    maven { url 'https://local-repo/artifactory/apps-release-local' }  // company application release builds
    maven { url 'https://local-repo/artifactory/apps-snapshot-local' } // company application snapshot builds
    maven { url 'https://local-repo/artifactory/repo1' }               // company lazy mirror of central repos
    mavenCentral()
    jcenter()
}
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>com.xxx.yyy.zzz</groupId>
  <artifactId>ch-commons</artifactId>
  <version>1.6.3-20160701.154200-1</version>
  <versioning>
    <latest>1.7.0-SNAPSHOT</latest>
    <versions>
      <version>1.0.1-SNAPSHOT</version>
      <version>1.0.2-SNAPSHOT</version>
      <version>1.0.3-SNAPSHOT</version>
      <version>1.0.4-SNAPSHOT</version>
      <version>1.1.0-SNAPSHOT</version>
      <version>1.2.0-SNAPSHOT</version>
      <version>1.2.1-SNAPSHOT</version>
      <version>1.3.0-SNAPSHOT</version>
      <version>1.4.0-SNAPSHOT</version>
      <version>1.5.0-SNAPSHOT</version>
      <version>1.5.1-SNAPSHOT</version>
      <version>1.6.0-SNAPSHOT</version>
      <version>1.6.2-SNAPSHOT</version>
      <version>1.6.3-SNAPSHOT</version>
      <version>1.7.0-SNAPSHOT</version>
    </versions>
    <lastUpdated>20160701183429</lastUpdated>
  </versioning>
</metadata>
我已经验证,除了
本地发布的应用程序
之外,这些位置中没有
ch commons
工件。在
apps release local
中,我们有以下内容(省略了sha1、md5和元数据文件):

查看
1.7.0-SNAPSHOT
目录,我们有以下内容(省略相同内容):

apps snapshot local/com/xxx/yyy/zzz/ch commons/maven-metadata-2.xml
的内容如下:

repositories {
    maven { url 'https://local-repo/artifactory/apps-release-local' }  // company application release builds
    maven { url 'https://local-repo/artifactory/apps-snapshot-local' } // company application snapshot builds
    maven { url 'https://local-repo/artifactory/repo1' }               // company lazy mirror of central repos
    mavenCentral()
    jcenter()
}
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>com.xxx.yyy.zzz</groupId>
  <artifactId>ch-commons</artifactId>
  <version>1.6.3-20160701.154200-1</version>
  <versioning>
    <latest>1.7.0-SNAPSHOT</latest>
    <versions>
      <version>1.0.1-SNAPSHOT</version>
      <version>1.0.2-SNAPSHOT</version>
      <version>1.0.3-SNAPSHOT</version>
      <version>1.0.4-SNAPSHOT</version>
      <version>1.1.0-SNAPSHOT</version>
      <version>1.2.0-SNAPSHOT</version>
      <version>1.2.1-SNAPSHOT</version>
      <version>1.3.0-SNAPSHOT</version>
      <version>1.4.0-SNAPSHOT</version>
      <version>1.5.0-SNAPSHOT</version>
      <version>1.5.1-SNAPSHOT</version>
      <version>1.6.0-SNAPSHOT</version>
      <version>1.6.2-SNAPSHOT</version>
      <version>1.6.3-SNAPSHOT</version>
      <version>1.7.0-SNAPSHOT</version>
    </versions>
    <lastUpdated>20160701183429</lastUpdated>
  </versioning>
</metadata>
然后它“正确”工作,检索正确的版本
1.7.0-SNAPSHOT



那么,为什么带有
+
版本通配符的依赖项设置不检索最新版本呢?

默认情况下,gradle将快照依赖项缓存24小时。
您可以使用手动刷新它们

--refresh-dependencies
或者,您可以按照指南配置缓存持续时间:

您还可以将“更改”设置为true,这样它就不会缓存快照


实施组:'com.xxx.yyy.zzz',名称:'ch commons',版本:'1.7.0-SNAPSHOT',更改:true

maven元数据文件的最新状态是什么?发布此问题后,我实际上跳到了
1.7.0-SNAPSHOT
。这就是
maven-metadata-2.xml
所说的最新版本。但我的本地版本仍在检索
1.6.0-SNAPSHOT
--refresh-dependencies