79282871

Date: 2024-12-15 18:04:05
Score: 0.5
Natty:
Report link

Add the following snippet to one of your projects:

allprojects {
  tasks.register('printConfigurations') {
    if (!configurations.empty) {
      println "==="
      println "Configurations of ${project.path} project"
      println "==="
      configurations.all {
        println "${name}${canBeResolved ? '' : ' resolvable'}${canBeConsumed ? '' : ' consumable'}${canBeDeclared ? '' : ' scope'}"
        extendsFrom.each {
          println "  ${it.name}"
        }
      }
    }
  }
}

Run gradlew printConfigurations

Output:

===
Configurations of :foo project
===
annotationProcessor consumable
apiElements resolvable scope
archives resolvable scope
compileClasspath consumable scope
  compileOnly
  implementation
compileOnly resolvable consumable
default resolvable scope
  runtimeElements
implementation resolvable consumable
mainSourceElements resolvable scope
  implementation
runtimeClasspath consumable scope
  runtimeOnly
  implementation
runtimeElements resolvable scope
  implementation
  runtimeOnly
runtimeOnly resolvable consumable
testAnnotationProcessor consumable
testCompileClasspath consumable scope
  testCompileOnly
  testImplementation
testCompileOnly resolvable consumable
testImplementation resolvable consumable
  implementation
testResultsElementsForTest resolvable scope
testRuntimeClasspath consumable scope
  testRuntimeOnly
  testImplementation
testRuntimeOnly resolvable consumable
  runtimeOnly

Not fancy, but fills that gap between the standard outgoingVariants, dependencies, and dependencyInsight tasks.

Reasons:
  • RegEx Blacklisted phrase (1.5): Resolved ?
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Alexey Semenyuk