You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are the author of https://github.com/cloudflightio/license-gradle-plugin, a plugin which creates enhanced dependency reports along with license reports (i.e. which library is used with which license). In order to achieve that, we parse the POM files of resolved artifacts, but sometimes we also need to fetch parent poms also BOMs.
Starting with Gradle 8, this code creates an exception when calling configuration.resolvedConfiguration or also configuration.resolve, the stacktrace is:
Caused by: java.lang.NullPointerException: Cannot invoke "org.gradle.internal.component.local.model.RootLocalComponentMetadata$RootLocalConfigurationMetadata.getSyntheticDependencies()" because the return value of "java.util.Map.get(Object)" is null
at org.gradle.internal.component.local.model.RootLocalComponentMetadata.getSyntheticDependencies(RootLocalComponentMetadata.java:78)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:146)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:144)
at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph(DefaultConfigurationResolver.java:195)
at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolveGraph(ShortCircuitEmptyConfigurationResolver.java:85)
at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolveGraph(ErrorHandlingConfigurationResolver.java:76)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call(DefaultConfiguration.java:669)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call(DefaultConfiguration.java:660)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:660)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.lambda$resolveExclusively$4(DefaultConfiguration.java:640)
at org.gradle.api.internal.project.DefaultProjectStateRegistry$CalculatedModelValueImpl.update(DefaultProjectStateRegistry.java:486)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveExclusively(DefaultConfiguration.java:637)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:624)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:599)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source)
at io.cloudflight.license.gradle.task.LicenseReportTask.resolveCompanionArtifacts(LicenseReportTask.kt:186)
at io.cloudflight.license.gradle.task.LicenseReportTask.findPomFiles(LicenseReportTask.kt:201)
at io.cloudflight.license.gradle.task.LicenseReportTask.licenseReport(LicenseReportTask.kt:86)
The impacted lines of code in RootLocalComponentMetadata are:
… configurations
This ensures when a configuration is removed and added between resolutions, we can clear and subsequently re-calculate updated metadata
Fixes#23985
Co-authored-by: Justin Van Dort <jvandort@gradle.com>
Expected Behavior
We are the author of https://github.com/cloudflightio/license-gradle-plugin, a plugin which creates enhanced dependency reports along with license reports (i.e. which library is used with which license). In order to achieve that, we parse the POM files of resolved artifacts, but sometimes we also need to fetch parent poms also BOMs.
Our current way to achieve that (i.e. resolve the parent poms), was to create a dynamic configuration, add the parent dependencies, and then parse the POMs. See the method
resolveCompanionArtifacts
https://github.com/cloudflightio/license-gradle-plugin/blob/master/src/main/kotlin/io/cloudflight/license/gradle/task/LicenseReportTask.kt#L179:This worked fine with Gradle 6 and Gradle 7.
Current Behavior
Starting with Gradle 8, this code creates an exception when calling
configuration.resolvedConfiguration
or alsoconfiguration.resolve
, the stacktrace is:The impacted lines of code in
RootLocalComponentMetadata
are:So it seems that somehow the method
addConfiguration
is not called anymore.Context
see "Current Behaviour". I tried it both with Gradle 8.0 and Gradle 8.0.1, neither of them are working
Steps to Reproduce
Just use the plugin https://github.com/cloudflightio/license-gradle-plugin with Gradle 8. It works fine with Gradle 7 and 6, and we are not using any deprecated or internal APIs.
The text was updated successfully, but these errors were encountered: