Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

missing guava dependencies when updating from 32.0.1-jre to 32.1.1-jre #6657

Closed
uli-f opened this issue Jul 28, 2023 · 6 comments
Closed

missing guava dependencies when updating from 32.0.1-jre to 32.1.1-jre #6657

uli-f opened this issue Jul 28, 2023 · 6 comments
Labels
P2 type=defect Bug, not working as expected
Milestone

Comments

@uli-f
Copy link

uli-f commented Jul 28, 2023

My Java project has a transitive dependency on com.google.guava:guava.

I manually update the version of guava by adding a constraint to the dependencies section of my build.gradle:

dependencies {
   .....
    constraints {
        // update guava to latest
        implementation("com.google.guava:guava:32.0.1-jre") {
            because("cdk uses an old version")
        }
    }
}

When updating from version 32.0.1-jre to version 32.1.1-jre the following transitive dependencies of guava cannot be resolved:

   > Could not find com.google.code.findbugs:jsr305:.
     Required by:
         project : > com.google.guava:guava:32.1.1-jre
   > Could not find org.checkerframework:checker-qual:.
     Required by:
         project : > com.google.guava:guava:32.1.1-jre
   > Could not find com.google.errorprone:error_prone_annotations:.
     Required by:
         project : > com.google.guava:guava:32.1.1-jre
   > Could not find com.google.j2objc:j2objc-annotations:.
     Required by:
         project : > com.google.guava:guava:32.1.1-jre

I use the official maven repository to resolve dependencies:

repositories {
        mavenCentral(name: 'official maven')
}

As there is no such issue of resolving these transitive dependencies when switching back to guava version 32.0.1-jre even after manually deleting all directories that start with com.google in the gradle cache the issue isn't caused by the libraries not being available from the repository.

I cannot (or don't know how to) redact information from the gradle build scan, so I opted for providing you with the console output of gradlew -info clean compileJava.

Please let me know if there is anything else you need to look into this.

@uli-f
Copy link
Author

uli-f commented Jul 28, 2023

Output of gradlew -info clean compileJava:

Initialized native services in: C:\Users\USERNAME\.gradle\native
Initialized jansi services in: C:\Users\USERNAME\.gradle\native
Received JVM installation metadata from 'C:\Program Files\Eclipse Adoptium\jdk-17.0.8.7-hotspot': {JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.8.7-hotspot, JAVA_VERSION=17.0.8, JAVA_VENDOR=Eclipse Adoptium, RUNTIME_NAME=OpenJDK Runtime Environment, RUNTIME_VERSION=17.0.8+7, VM_NAME=OpenJDK 64-Bit Serve
r VM, VM_VERSION=17.0.8+7, VM_VENDOR=Eclipse Adoptium, OS_ARCH=amd64}
The client will now receive all logging from the daemon (pid: 6100). The daemon log file: C:\Users\USERNAME\.gradle\daemon\8.1.1\daemon-6100.out.log           
Starting 11th build in daemon [uptime: 16 mins 30.533 secs, performance: 100%, GC rate: 0.00/s, heap usage: 0% of 512 MiB, non-heap usage: 27% of 384 MiB]
Using 8 worker leases.                                                                                                                                    
Now considering [C:\Development\IdeaProjects\PROJECTNAME] as hierarchies to watch
Watching the file system is configured to be enabled if available
File system watching is active
Starting Build
Settings evaluated using settings file 'C:\Development\IdeaProjects\PROJECTNAME\settings.gradle'.
Projects loaded. Root project using build file 'C:\Development\IdeaProjects\PROJECTNAME\build.gradle'.
Included projects: [root project 'PROJECTNAME']

> Configure project :
Evaluating root project 'PROJECTNAME' using build file 'C:\Development\IdeaProjects\PROJECTNAME\build.gradle'.
The configuration detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration2 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration2 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration2 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration2 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration3 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration3 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration3 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration3 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration4 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration4 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration4 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration4 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration5 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration5 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration5 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration5 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration6 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration6 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration6 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration6 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
Applying dependency management to configuration 'annotationProcessor' in project 'PROJECTNAME'
Applying dependency management to configuration 'apiElements' in project 'PROJECTNAME'
Applying dependency management to configuration 'archives' in project 'PROJECTNAME'
Applying dependency management to configuration 'bootArchives' in project 'PROJECTNAME'
Applying dependency management to configuration 'compileClasspath' in project 'PROJECTNAME'
Applying dependency management to configuration 'compileOnly' in project 'PROJECTNAME'
Applying dependency management to configuration 'default' in project 'PROJECTNAME'
Applying dependency management to configuration 'developmentOnly' in project 'PROJECTNAME'
Applying dependency management to configuration 'implementation' in project 'PROJECTNAME'
Applying dependency management to configuration 'mainSourceElements' in project 'PROJECTNAME'
Applying dependency management to configuration 'productionRuntimeClasspath' in project 'PROJECTNAME'
Applying dependency management to configuration 'runtimeClasspath' in project 'PROJECTNAME'
Applying dependency management to configuration 'runtimeElements' in project 'PROJECTNAME'
Applying dependency management to configuration 'runtimeOnly' in project 'PROJECTNAME'
Applying dependency management to configuration 'testAnnotationProcessor' in project 'PROJECTNAME'
Applying dependency management to configuration 'testCompileClasspath' in project 'PROJECTNAME'
Applying dependency management to configuration 'testCompileOnly' in project 'PROJECTNAME'
Applying dependency management to configuration 'testImplementation' in project 'PROJECTNAME'
Applying dependency management to configuration 'testResultsElementsForTest' in project 'PROJECTNAME'
Applying dependency management to configuration 'testRuntimeClasspath' in project 'PROJECTNAME'
Applying dependency management to configuration 'testRuntimeOnly' in project 'PROJECTNAME'
Applying dependency management to configuration 'shadow' in project 'PROJECTNAME'
Applying dependency management to configuration 'shadowRuntimeElements' in project 'PROJECTNAME'
Gradle version: 8.1.1
matching ref: COMMIT - 61fb4d3a7d8184458957d71a36e15b1837f2f5cd
ref configuration: COMMIT - pattern: null
  describeTagFirstParent: true
  version: ${describe.tag}-${describe.distance}-${commit.short}

set version to  v0.0.23-15-61fb4d3
project version: v0.0.23-15-61fb4d3
Java Compiler arguments for task compileJava: [-parameters, -Xlint:deprecation, -Xlint:unchecked]
Java source compatibility: 17
Java target compatibility: 17
The build profile is set to 'other'.
Repositories used for resolving dependencies:
  official maven
maximum heap size: default
Artifact name: PROJECTNAME-v0.0.23-15-61fb4d3.jar
Repository used for publishing artifact:
  [no repository configured]
All projects evaluated.
Task name matched 'clean'
Task name matched 'compileJava'
Selected primary task 'clean' from project :
Selected primary task 'compileJava' from project :
The configuration :mainSourceElements is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
Tasks to be executed: [task ':clean', task ':processContainerResources', task ':writeFileWithArtifactName', task ':processResources', task ':compileJava']
Tasks that were excluded: []
Resolve mutations for :clean (Thread[Execution worker,5,main]) started.
:clean (Thread[Execution worker,5,main]) started.
destroyer locations for task group 0 (Thread[included builds,5,main]) started.

> Task :clean
Caching disabled for task ':clean' because:
  Build cache is disabled
Task ':clean' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Resolve mutations for :processContainerResources (Thread[Execution worker,5,main]) started.
:processContainerResources (Thread[Execution worker,5,main]) started.

> Task :processContainerResources
Caching disabled for task ':processContainerResources' because:
  Build cache is disabled
Task ':processContainerResources' is not up-to-date because:
  Output property 'destinationDir' file C:\Development\IdeaProjects\PROJECTNAME\build\container has been removed.
  Output property 'destinationDir' file C:\Development\IdeaProjects\PROJECTNAME\build\container\Dockerfile has been removed.
  Output property 'destinationDir' file C:\Development\IdeaProjects\PROJECTNAME\build\container\entrypoint.sh has been removed.
Resolve mutations for :writeFileWithArtifactName (Thread[Execution worker,5,main]) started.
:writeFileWithArtifactName (Thread[Execution worker,5,main]) started.

> Task :writeFileWithArtifactName
Caching disabled for task ':writeFileWithArtifactName' because:
  Build cache is disabled
Task ':writeFileWithArtifactName' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Resolve mutations for :processResources (Thread[Execution worker,5,main]) started.
:processResources (Thread[Execution worker,5,main]) started.

> Task :processResources
Caching disabled for task ':processResources' because:
  Build cache is disabled
Task ':processResources' is not up-to-date because:
  Output property 'destinationDir' file C:\Development\IdeaProjects\PROJECTNAME\build\resources\main has been removed.
  Output property 'destinationDir' file C:\Development\IdeaProjects\PROJECTNAME\build\resources\main\application-local.properties has been removed.
  Output property 'destinationDir' file C:\Development\IdeaProjects\PROJECTNAME\build\resources\main\application-production.properties has been removed.
  Output property 'destinationDir' file C:\Development\IdeaProjects\PROJECTNAME\build\resources\main\application.properties has been removed.
Resolve mutations for :compileJava (Thread[included builds,5,main]) started.
:compileJava (Thread[included builds,5,main]) started.

> Task :compileJava FAILED
Resolving global dependency management for project 'PROJECTNAME'
The configuration :detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration2 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration2 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration2 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration2 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration2 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration2 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration3 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration3 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration3 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration3 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration3 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration3 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration4 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration4 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration4 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration4 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration4 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration4 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration5 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration5 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration5 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration5 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration5 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration5 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration6 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration6 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration6 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration6 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration6 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration6 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration7 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration7 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration7 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration7 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration7 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration7 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration8 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration8 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration8 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration8 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration8 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration8 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration9 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration9 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration9 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration9 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration9 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration9 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration10 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration10 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration10 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration10 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration10 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration10 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration11 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration11 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration11 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration11 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration11 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration11 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration12 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration12 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration12 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration12 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration12 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration12 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration13 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration13 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration13 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration13 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration13 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration13 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration14 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration14 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration14 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration14 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration14 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration14 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration15 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration15 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration15 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration15 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration15 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration15 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration16 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration16 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration16 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration16 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration16 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration16 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration17 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration17 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration17 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration17 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration17 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration17 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration18 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration18 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration18 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration18 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration18 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration18 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration19 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration19 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration19 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration19 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration19 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration19 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration20 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration20 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration20 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration20 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration20 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration20 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration21 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration21 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration21 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration21 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration21 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration21 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration22 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration22 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration22 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration22 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration22 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration22 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration23 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration23 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration23 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration23 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration23 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration23 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration24 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration24 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration24 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration24 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration24 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration24 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration25 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration25 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration25 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration25 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration25 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration25 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration26 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration26 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration26 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration26 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration26 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration26 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration27 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration27 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration27 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration27 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration27 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration27 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration28 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration28 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration28 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration28 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration28 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration28 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration29 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration29 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration29 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration29 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration29 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration29 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration30 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration30 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration30 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration30 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration30 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration30 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration31 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration31 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration31 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration31 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration31 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration31 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration32 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration32 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration32 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration32 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration32 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration32 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration33 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration33 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration33 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration33 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration33 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration33 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration34 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration34 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration34 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration34 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration34 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration34 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration35 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration35 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration35 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration35 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration35 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration35 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration36 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration36 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration36 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration36 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration36 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration36 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration37 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration37 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration37 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration37 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration37 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration37 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration38 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration38 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration38 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration38 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration38 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration38 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration39 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration39 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration39 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration39 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration39 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration39 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration40 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration40 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration40 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration40 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration40 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration40 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration41 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration41 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration41 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration41 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration41 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration41 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration42 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration42 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration42 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration42 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration42 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration42 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration43 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration43 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration43 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration43 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration43 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration43 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration44 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration44 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration44 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration44 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration44 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration44 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration45 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration45 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration45 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration45 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration45 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration45 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration46 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration46 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration46 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration46 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration46 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration46 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration47 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration47 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration47 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration47 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration47 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration47 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration48 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration48 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration48 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration48 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration49 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration49 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration49 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration49 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration50 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration50 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration50 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration50 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration50 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration50 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration51 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration51 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration51 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration51 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration51 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration51 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration52 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration52 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration52 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration52 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration52 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration52 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration53 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration53 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration53 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration53 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration53 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration53 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration54 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration54 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration54 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration54 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration54 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration54 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration55 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration55 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration55 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration55 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration55 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration55 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration56 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration56 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration56 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration56 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration56 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration56 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration57 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration57 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration57 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration57 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration57 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration57 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration58 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration58 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration58 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration58 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration58 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration58 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration59 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration59 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration59 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration59 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration59 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration59 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration60 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration60 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration60 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration60 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration60 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration60 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration61 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration61 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration61 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration61 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration61 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration61 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration62 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration62 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration62 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration62 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration62 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration62 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration63 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration63 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration63 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration63 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration63 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration63 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration64 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration64 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration64 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration64 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration64 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration64 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration65 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration65 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration65 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration65 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration65 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration65 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration66 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration66 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration66 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration66 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration66 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration66 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration67 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration67 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration67 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration67 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration67 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration67 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration68 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration68 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration68 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration68 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration68 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration68 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration69 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration69 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration69 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration69 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration69 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration69 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration70 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration70 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration70 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration70 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration70 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration70 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration71 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration71 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration71 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration71 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration71 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration71 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration72 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration72 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration72 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration72 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration72 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration72 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration73 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration73 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration73 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration73 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration73 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration73 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration74 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration74 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration74 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration74 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration74 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration74 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration75 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration75 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration75 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration75 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration75 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration75 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration76 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration76 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration76 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration76 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration76 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration76 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration77 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration77 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration77 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration77 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration77 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration77 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration78 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration78 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration78 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration78 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration78 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration78 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration79 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration79 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration79 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration79 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration79 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration79 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration80 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration80 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration80 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration80 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration80 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration80 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration81 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration81 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration81 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration81 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration81 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration81 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
Excluding [com.fasterxml.jackson:jackson-bom, com.google.guava:guava-parent]

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find com.google.code.findbugs:jsr305:.
     Required by:
         project : > com.google.guava:guava:32.1.1-jre
   > Could not find org.checkerframework:checker-qual:.
     Required by:
         project : > com.google.guava:guava:32.1.1-jre
   > Could not find com.google.errorprone:error_prone_annotations:.
     Required by:
         project : > com.google.guava:guava:32.1.1-jre
   > Could not find com.google.j2objc:j2objc-annotations:.
     Required by:
         project : > com.google.guava:guava:32.1.1-jre

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
5 actionable tasks: 5 executed
Watched directory hierarchies: [C:\Development\IdeaProjects\PROJECTNAME]

@nniesen
Copy link

nniesen commented Jul 29, 2023

Having the same issue with 32.1.1-jre dependency. I think your new Gradle Module file is broken. Possibly your project has dynamic dependency versions that are not being resolved to fixed versions before creating the Module file.

Dependency

api 'com.google.guava:guava:32.1.1-jre'

Errors

08:12:27  Execution failed for task ':common-test:compileTestGroovy'.
08:12:27  > Could not resolve all files for configuration ':common-test:testCompileClasspath'.
08:12:27     > Could not find com.google.code.findbugs:jsr305:.
08:12:27       Required by:
08:12:27           project :common-test > org.apache.qpid:qpid-broker-core:9.0.0 > com.google.guava:guava:32.1.1-jre
08:12:27     > Could not find org.checkerframework:checker-qual:.
08:12:27       Required by:
08:12:27           project :common-test > org.apache.qpid:qpid-broker-core:9.0.0 > com.google.guava:guava:32.1.1-jre
08:12:27     > Could not find com.google.errorprone:error_prone_annotations:.
08:12:27       Required by:
08:12:27           project :common-test > org.apache.qpid:qpid-broker-core:9.0.0 > com.google.guava:guava:32.1.1-jre

Work around in our builds :/

        // Fix for the missing versions in the gradle module published for guava 32.1.1-jre
        api 'org.checkerframework:checker-qual:3.36.0'
        api 'com.google.code.findbugs:jsr305:3.0.2'
        api 'com.google.errorprone:error_prone_annotations:2.20.0'

@cpovirk
Copy link
Member

cpovirk commented Jul 31, 2023

Hmm, thanks for reporting.

Could this have something to do with dependency exclusions, as in the armeria case?

https://github.com/line/armeria/blob/d9076b58f9b2b0e7408246208d1ba62eb3d04428/dependencies.toml#L475-L481

Could it be that those exclusions "work" enough to make Gradle not make the dependency available but don't "work" enough to make it stop looking for them? @jjohannes, I feel I'm repeatedly taking advantage of you here, but I don't know enough to know where to go from here on my own :(

@cpovirk
Copy link
Member

cpovirk commented Jul 31, 2023

I accidentally discovered something: My #6659 (to avoid using dependencyManagement) leads to a similar error:

Execution failed for task ':androidAndroidConstraintCompileClasspathJava:testClasspath'.
1 actionable task: 1 executed
> Could not resolve all files for configuration ':androidAndroidConstraintCompileClasspathJava:compileClasspath'.
   > Could not find com.google.code.findbugs:jsr305:.
     Required by:
         project :androidAndroidConstraintCompileClasspathJava > com.google.guava:guava:HEAD-android-SNAPSHOT
   > Could not find org.checkerframework:checker-qual:.
     Required by:
         project :androidAndroidConstraintCompileClasspathJava > com.google.guava:guava:HEAD-android-SNAPSHOT
   > Could not find com.google.errorprone:error_prone_annotations:.
     Required by:
         project :androidAndroidConstraintCompileClasspathJava > com.google.guava:guava:HEAD-android-SNAPSHOT
   > Could not find com.google.j2objc:j2objc-annotations:.
     Required by:
         project :androidAndroidConstraintCompileClasspathJava > com.google.guava:guava:HEAD-android-SNAPSHOT

That is probably not surprising to @jjohannes, who had talked about putting version numbers into the Gradle metadata—and, I now see more clearly, doing so as a substitute for dependencyManagement. I'll leave a comment about this on #6654, too.

copybara-service bot pushed a commit that referenced this issue Jul 31, 2023
…arent pom.

Fixes #6654, I hope? If `guava` and its parent pom don't refer to `mockito-core`, then `guava` should no longer affect which version of `mockito-core` is selected by Gradle. (Really, it "shouldn't" even now, but there's a mismatch between Maven's model and Gradle's that causes it to do so.)

I had initially attempted (in cl/552479838) to declare versions of _all_ our dependencies inline, but that [didn't work](#6657 (comment)): We [really need `dependencyManagement` for Gradle purposes, at least until we specify versions for Gradle explicitly](#6654 (comment)).

It would be nice if we could still declare our dependency versions only once, now by using `properties`. (In fact, my attempt to use `properties` made me notice that our version of the Error Prone _plugin_ is older than our version of the Error Prone _annotations_.) However, if we were to make that change, then we'd lose the ability to update dependencies with `versions-maven-plugin` (`update-properties` + `use-latest-releases`), I assume because the properties are declared in one `pom.xml` and used in another. (It's possible that Dependabot is better about this, but we've had trouble getting it to work with our unusual 2-flavor, Google-repo-source-of-truth setup.) I notice that we have this problem even today with `truth.version`....

Tested:
  ```
  $ mvn dependency:tree -Dverbose -X -U &> /tmp/pre

  # made changes

  $ mvn dependency:tree -Dverbose -X -U &> /tmp/post

  $ strip() { cat "$@" | grep -v -e 'Dependency collection stats' -e 'Downloading from' -e 'Progress' -e 'Using connector' -e 'Using transporter' -e 'Using mirror' -e maven-dependency-plugin -e SUCCESS -e 'Total time' -e 'Finished at' | sed -e 's/ (.*managed from.*)//'; }; vimdiff <(strip /tmp/pre) <(strip /tmp/post)
  ```

RELNOTES=Changed our Maven project to avoid [affecting which version of Mockito our Gradle users see](#6654).
PiperOrigin-RevId: 552508216
copybara-service bot pushed a commit that referenced this issue Jul 31, 2023
…arent pom.

Fixes #6654, I hope? If `guava` and its parent pom don't refer to `mockito-core`, then `guava` should no longer affect which version of `mockito-core` is selected by Gradle. (Really, it "shouldn't" even now, but there's a mismatch between Maven's model and Gradle's that causes it to do so.)

I had initially attempted (in cl/552479838) to declare versions of _all_ our dependencies inline, but that [didn't work](#6657 (comment)): We [really need `dependencyManagement` for Gradle purposes, at least until we specify versions for Gradle explicitly](#6654 (comment)).

It would be nice if we could still declare our dependency versions only once, now by using `properties`. (In fact, my attempt to use `properties` made me notice that our version of the Error Prone _plugin_ is older than our version of the Error Prone _annotations_.) However, if we were to make that change, then we'd lose the ability to update dependencies with `versions-maven-plugin` (`update-properties` + `use-latest-releases`), I assume because the properties are declared in one `pom.xml` and used in another. (It's possible that Dependabot is better about this, but we've had trouble getting it to work with our unusual 2-flavor, Google-repo-source-of-truth setup.) I notice that we have this problem even today with `truth.version`....

Tested:
  ```
  $ mvn dependency:tree -Dverbose -X -U &> /tmp/pre

  # made changes

  $ mvn dependency:tree -Dverbose -X -U &> /tmp/post

  $ strip() { cat "$@" | grep -v -e 'Dependency collection stats' -e 'Downloading from' -e 'Progress' -e 'Using connector' -e 'Using transporter' -e 'Using mirror' -e maven-dependency-plugin -e SUCCESS -e 'Total time' -e 'Finished at' | sed -e 's/ (.*managed from.*)//'; }; vimdiff <(strip /tmp/pre) <(strip /tmp/post)
  ```

RELNOTES=Changed our Maven project to avoid [affecting which version of Mockito our Gradle users see](#6654).
PiperOrigin-RevId: 552549819
@jjohannes
Copy link
Contributor

I can't clearly see it from the error messages, but my assumption is that the builds that have this issue somehow (unintentionally) exclude the dependency to guava-parent that should bring in the versions. This is new with the Gradle Metadata.

        {
          "group": "com.google.guava",
          "module": "guava-parent",
          "version": {
            "requires": "${pom.version}"
          },
          "attributes": {
            "org.gradle.category": "platform"
          }
        }

See my explanation of why here: #6654 (comment)

@cpovirk I'll have a look if we can inline the versions in the Gradle Metadata as an alternative to 71a16d5. Seeing this issue makes me think it would be better to not have unnecessary divergent between how things are seen by Maven and Gradle.

@cgdecker cgdecker added P2 type=defect Bug, not working as expected labels Aug 2, 2023
copybara-service bot pushed a commit that referenced this issue Aug 2, 2023
This makes the version handling in POM and Gradle Metadata more similar.
See #6654 (comment)

We expect this to fix #6657, though we don't fully understand it.

Fixes #6664

RELNOTES=Changed Gradle Metadata to include dependency versions directly. This may address ["Could not find `some-dependency`" errors](#6657) that some users have reported (which might be a result of users' excluding `guava-parent`).
PiperOrigin-RevId: 553180806
@nniesen
Copy link

nniesen commented Aug 4, 2023

@jjohannes I don't know if this will help or is relevant to your build process but...

We have an internal gradle bom project and to get it to inherit included boms, so our consumers only need to specify our bom, we had to add the following to our Gradle file.

javaPlatform {
    allowDependencies()
}

We also followed this post to ensure dynamic dependency versions were resolve/pinned in the publish pom:
Publishing a POM with resolved/pinned versions: gradle/gradle#8887

I do see you have a resolution that works for you so not looking for a change.

jrhee17 added a commit to line/armeria that referenced this issue Aug 8, 2023
Note that some dependencies have some issues which need resolving before
upgrading:
- Guava: google/guava#6657

**Dependencies **

- gRPC-Java 1.56.1 -> 1.57.1
- GraphQL Kotlin 6.5.2 -> 6.5.3
- Jakarta Websocket 2.1.0 -> 2.1.1
- Kafka client 3.4.0 -> 3.4.1
- Kotlin 1.8.22 -> 1.9.0
- Kotlin Coroutine 1.7.1 -> 1.7.3
- Micrometer 1.11.1 -> 1.11.2
- Netty 4.1.95.Final -> 4.1.96.Final
- Protobuf 3.22.3 -> 3.23.4
- Reactor 3.5.7 -> 3.5.8
- Resilience4j 2.0.2 -> 2.1.0
- Resteasy 5.0.5.Final -> 5.0.7.Final
- Sangria 4.0.0 -> 4.0.1
- scala-collection-compat 2.10.0 -> 2.11.0
- Spring 6.0.9 -> 6.0.11
- Spring Boot 2.7.12 -> 2.7.14, 3.1.0 -> 3.1.1
- Tomcat 10.1.10 -> 10.1.11
- Build
  - Dagger 2.46.1 -> 2.47
  - dgs 5.5.0 -> 7.3.6
  - Error Prone 2.19.1 -> 2.20.0
  - Eureka 2.0.0 -> 2.0.1
  - gax-grpc 2.29.0 -> 2.31.1
  - Gradle 8.1.1 -> 8.2.1
  - Groovy 3.0.17 -> 3.0.18
  - Hibernate Validator 8.0.0.Final -> 8.0.1.Final
  - Java Websocket 1.5.3 -> 1.5.4
  - JUnit 5.9.3 -> 5.10.0
  - Kafka 3.4.1 -> 3.5.1
  - ktlint-gradle-plugin 11.3.2 -> 11.4.0
  - Snappy 1.1.9.1 -> 1.1.10.3
  - TestNG 7.5 -> 7.5.1

---------

Co-authored-by: Trustin Lee <[email protected]>
@cpovirk cpovirk added this to the 32.1.3 milestone Oct 6, 2023
copybara-service bot pushed a commit to androidx/media that referenced this issue Nov 1, 2023
This is slightly out of sync with the version in AOSP (32.1.2) but the
diff is minimal, and we need 32.1.3 here as it contains the fix for
google/guava#6657.

PiperOrigin-RevId: 578572893
copybara-service bot pushed a commit to google/ExoPlayer that referenced this issue Nov 1, 2023
This is slightly out of sync with the version in AOSP (32.1.2) but the
diff is minimal, and we need 32.1.3 here as it contains the fix for
google/guava#6657.

PiperOrigin-RevId: 578572893
copybara-service bot pushed a commit to google/google-java-format that referenced this issue Dec 7, 2023
There is an issue about resolving transitive dependencies in Guava breaks GJF 1.18.1 integration in [Spotless](https://github.com/diffplug/spotless), which has been fixed in Guava 32.1.3, it would be nice to follow this update.

See:
- google/guava#6657.
- https://github.com/google/guava/releases/tag/v32.1.3.

Fixes #996

FUTURE_COPYBARA_INTEGRATE_REVIEW=#996 from Goooler:bump-guava 1e5ed85
PiperOrigin-RevId: 588821550
copybara-service bot pushed a commit to google/google-java-format that referenced this issue Dec 7, 2023
There is an issue about resolving transitive dependencies in Guava breaks GJF 1.18.1 integration in [Spotless](https://github.com/diffplug/spotless), which has been fixed in Guava 32.1.3, it would be nice to follow this update.

See:
- google/guava#6657.
- https://github.com/google/guava/releases/tag/v32.1.3.

Fixes #996

COPYBARA_INTEGRATE_REVIEW=#996 from Goooler:bump-guava 1e5ed85
PiperOrigin-RevId: 588824173
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P2 type=defect Bug, not working as expected
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants
@cgdecker @cpovirk @jjohannes @nniesen @uli-f and others