gradle - 将 Gradle 5.3.1 升级到 6.5。旧版本下载依赖项正常,但在 6.5 上失败

标签 gradle download dependencies

我已将问题简化为一个非常简单的项目,该项目声明了对从我的客户的工件实例提供的模块工件的模块依赖关系。 这在 5.3.1 中运行良好。从下面的日志中可以看出,有一行表明 DefaultExternalResourceArtifactResolver 正在加载关联的 .jar 来 self 的 maven2 存储库的此依赖项(请参阅:{{{ A }}})

但是,当我尝试升级到 Gradle 6.5 时,我收到消息

org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'maven2'

(参见 {{{ B }}})。

我太轻量级 Gradle,无法开始深入研究源代码。我希望有人能给我一个提示,说明这个问题的原因是什么。

以下是构建文件(为客户匿名而编辑):

根项目build.gradle

plugins {
  id 'java'
}


subprojects {
  apply plugin: 'java'

  repositories {
    ['animals'].each { repo ->
      maven {
        name repo
        url "${urlDefinedInGradleProperties}/${repo}"
        credentials {
          username = 'mouse'
          password = 'mouse.mouse'
        }
      }
    }
  }
}

子项目build.gradle

dependencies {
  testCompile group: 'com.mouse.ap.data.qe', name: 'lib-reptile-generator', version: '0.1-806-SNAPSHOT'
}

日志如下所示。 提前致谢 ! /克里斯

Gradle 5.3.1 selected log statements:   No issue downloaded dependency with older version.

22:48:01.145 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver] Attempting to resolve component for com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT using repositories [maven, maven2, MavenLocal, maven3, iad-lib, toro-ext, iad-lib-ext, gradle-plugins]
22:48:01.146 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'maven'
22:48:01.146 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Found cached version of changing module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in 'maven2'
22:48:01.146 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Using cached module metadata for module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in 'maven2'
22:48:01.146 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver] Loading file:/Users/christopher.bedford/.m2/repository/com/mouse/ap/data/qe/lib-reptile-generator/0.1-806-SNAPSHOT/lib-reptile-generator-0.1-806-SNAPSHOT.pom    {{{ A }}}
22:48:01.146 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver] Loading file:/Users/christopher.bedford/.m2/repository/com/mouse/ap/data/qe/lib-reptile-generator/0.1-806-SNAPSHOT/lib-reptile-generator-0.1-806-SNAPSHOT.jar
        ...
22:48:01.146 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver] No meta-data file or artifact found for module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in repository 'MavenLocal'.
22:48:01.146 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.PersistentModuleMetadataCache] Recording absence of module descriptor in cache: com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT [changing = false]
22:48:01.147 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'maven3'
22:48:01.147 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'foo-repo-lib'
22:48:01.148 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Found cached version of changing module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in 'bar-repo-ext'
22:48:01.148 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Using cached module metadata for module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in 'bar-repo-ext'
22:48:01.148 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'foo-rep-lib-ext'
22:48:01.148 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'gradle-plugins'
        ...
22:48:01.148 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver] Using com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT from Maven repository 'maven2'
        ...
22:48:01.149 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected matches [com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration compile] from candidates [com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration compile, com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration runtime, com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration platform-compile, com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration platform-runtime, com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration enforced-platform-compile, com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration enforced-platform-runtime] for {org.gradle.dependency.bundling=external, org.gradle.jvm.version=8, org.gradle.usage=java-api}
        ...
22:48:01.149 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder] Visiting configuration com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT(compile).
        ...
22:48:01.150 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Resolve dependencies of :lib-aci-kafka:testCompileClasspath'
22:48:01.150 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve dependencies of :lib-aci-kafka:testCompileClasspath' completed
        ...
22:48:01.150 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration compile from candidates [com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT configuration compile] for {org.gradle.dependency.bundling=external, org.gradle.jvm.version=8, org.gradle.usage=java-api}
        ...
22:48:01.151 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve lib-reptile-generator.jar (com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT)' started
22:48:01.151 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Found artifact 'lib-reptile-generator.jar (com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT)' in resolver cache: /Users/christopher.bedford/.gradle/caches/modules-2/files-2.1/com.mouse.ap.data.qe/lib-reptile-generator/0.1-806-SNAPSHOT/68ee2c19e31d164860a270837701cf49e6a76168/lib-reptile-generator-0.1-806-SNAPSHOT.jar
        ...
22:48:01.151 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Resolve lib-reptile-generator.jar (com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT)'
22:48:01.151 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve lib-reptile-generator.jar (com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT)' completed





Gradle 6.5 selected log statements:   Unable to download dependency with latest version.

2020-06-14T22:58:15.997-0700 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.NodeState] dependency: com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT from-conf: testCompile to-conf: null is filtered.
    ...
2020-06-14T22:58:16.071-0700 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver] Attempting to resolve component for com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT using repositories [maven, maven2, MavenLocal, maven3,  gradle-plugins]

2020-06-14T22:58:16.071-0700 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'maven'
2020-06-14T22:58:16.071-0700 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'maven2'  {{{ B }}}
2020-06-14T22:58:16.072-0700 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver] Loading file:/Users/christopher.bedford/.m2/repository/com/mouse/ap/data/qe/lib-reptile-generator/0.1-806-SNAPSHOT/lib-reptile-generator-0.1-806-SNAPSHOT.pom
2020-06-14T22:58:16.073-0700 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver] No meta-data file or artifact found for module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in repository 'MavenLocal'.
2020-06-14T22:58:16.073-0700 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.PersistentModuleMetadataCache] Recording absence of module descriptor in cache: com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT [changing = false]
2020-06-14T22:58:16.073-0700 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'maven3'
2020-06-14T22:58:16.073-0700 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of module 'com.mouse.ap.data.qe:lib-reptile-generator:0.1-806-SNAPSHOT' in resolver cache 'gradle-plugins'
2020-06-14T22:58:16.073-0700 [DEBUG] [org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor] Constructing external resource: https://artifacts.mouse.com/libs-release/com/mouse/ap/data/qe/lib-reptile-generator/0.1-806-SNAPSHOT/maven-metadata.xml
2020-06-14T22:58:16.074-0700 [DEBUG] [org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Opening cache resource-at-url.bin (/Users/christopher.bedford/.gradle/caches/modules-2/metadata-2.96/resource-at-url.bin)
2020-06-14T22:58:16.076-0700 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Download https://artifacts.mouse.com/libs-release/com/mouse/ap/data/qe/lib-reptile-generator/0.1-806-SNAPSHOT/maven-metadata.xml' started

重要脚注:如果您遵循已接受答案中给出的好建议,请确保避免我的愚蠢错误:不要将推荐的“metadataSources” block 放在buildscript {存储库下这肯定是不是你想要的!

最佳答案

根据您的评论

there is no metadata of any kind (no pom, etc), just the .jar

您的存储库仅包含 jar 文件,缺少元数据 pom 文件。在 6.0 之前,Gradle 首先尝试从 pom 派生元数据,如果缺少 pom,则尝试从工件中派生。这种情况在 Gradle 6 中发生了变化。出于效率原因,默认元数据源仅为 gradleMetadata()mavenPom()。因此,如果两者都丢失,Gradle 似乎不会尝试下载 jar

要恢复旧行为并能够解决依赖关系,请将 artifact() 添加到您的 Maven 存储库 metadataSources 配置中。

repositories {
    ['animals'].each { repo ->
        maven {
            name repo
            url "${urlDefinedInGradleProperties}/${repo}"
            credentials {
                username = 'mouse'
                password = 'mouse.mouse'
            }

            metadataSources {
                mavenPom()
                artifact()
            }
        }
    }
}

您可以在文档 Supported metadata sources 中阅读有关此内容的更多信息。 .

关于gradle - 将 Gradle 5.3.1 升级到 6.5。旧版本下载依赖项正常,但在 6.5 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62382865/

相关文章:

android - 我可以在 Android 设备上自动安装 Flash Player 吗?

javascript - AngularJS,管理二进制数据

gradle - Gradle中的自定义发布插件

java - Wicket - 如何通过其流下载文件?

python - 在测试 python 脚本时模拟缺乏依赖性

dependencies - Zabbix 依赖项未满足

maven - 如何生成 Maven dependencies.properties 文件?

android - Android同步失败-找不到com.google.android.gms:play-services-auth:15.1.0

java - OWLAPI : Parser not found if run from Jar

跨子模块集成测试的 Gradle Jacoco 测试覆盖率