Upgrading Gradle 5.3.1 to 6.5. Older version downloaded dependency OK, but fails on 6.5

天大地大妈咪最大 提交于 2021-02-08 05:56:06

问题


I have whittled down my problem to a very simple project that declares a module dependency on a module artifact served from my client's artifactory instance. This is working fine with 5.3.1. As can be seen from the logs below there is a line which indicates DefaultExternalResourceArtifactResolver is loading the associated .jar for this dependency from my maven2 repo (see: {{{ A }}})

However, when I attempted to upgrade to Gradle 6.5, I get the message

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'

(see {{{ B }}}).

I am too much of a Gradle lightweight to start diving into the source code. I was hoping someone might give me a hint as to what might be the cause of this problem.

Here are the build files (edited for client anonymity):

root project 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'
        }
      }
    }
  }
}

sub project build.gradle

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

Logs are shown below. Thanks in advance ! /chris

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

IMPORTANT FOOTNOTE: If you follow the good advice given in the accepted answer, make sure you avoid my foolish mistake: Don't put the recommended 'metadataSources' block under buildscript { repositories That is surely not what you want !


回答1:


According to your comment

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

your repository contains the jar file only and misses the metadata pom file. Before 6.0, Gradle tried to derive metadata from pom first and then the artifact if pom was missing. This changed with Gradle 6. For efficiency reasons, the default metadata sources are gradleMetadata() and mavenPom() only. So if both are missing Gradle doesn't seem to try to download the jar.

To restore the old behavior and being able to resolve the dependency add artifact() to your Maven repository metadataSources configuration.

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

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

You can read more about this in the docs Supported metadata sources.



来源:https://stackoverflow.com/questions/62382865/upgrading-gradle-5-3-1-to-6-5-older-version-downloaded-dependency-ok-but-fails

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!