Skip to content

Demonstration of a problem I'm seeing with ca.cutterslade.gradle:gradle-dependency-analyze

Notifications You must be signed in to change notification settings

jasonrclark/cutterslade-gradle-repro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Repro for apiHelper problem with ca.cutterslade.gradle:gradle-dependency-analyze:1.6.0

This repro contains a minimal example of a problem logged at gradle-dependency-analyze/gradle-dependency-analyze#201

We have an internal plugin where one of its tasks forces resolution of configurations during its processing. After updating to 1.6.0 with Gradle 6.9, I was seeing failures like the following on certain combinations of commands:

> Task :analyzeClassesDependencies FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':analyzeClassesDependencies'.
> Cannot change dependencies of dependency configuration ':apiHelper' after it has been resolved.

After some experimentation, I found that two tasks (forceConfigurationResolution being our custom task), available in the repro repo, will cause the error on >= 1.6.0 but don't on 1.5.3.

./gradlew forceConfigurationResolution analyzeClassesDependencies

I suspect that this is an unintended side-effect in the recent gradle-dependency-analyze since it worked before and I don't know why analyzing things would need to modify the dependency collections.

Relevant section of the stack trace which seems to be pointing toward https://github.com/gradle-dependency-analyze/gradle-dependency-analyze/blob/master/src/main/groovy/ca/cutterslade/gradle/analyze/ProjectDependencyResolver.groovy#L276-L280. (Full trace in this gist)

Caused by: org.gradle.api.InvalidUserDataException: Cannot change dependencies of dependency configuration ':apiHelper' after it has been resolved.
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.preventIllegalMutation(DefaultConfiguration.java:1260)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.validateMutation(DefaultConfiguration.java:1229)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.extendsFrom(DefaultConfiguration.java:382)
        at ca.cutterslade.gradle.analyze.ProjectDependencyResolver.configureApiHelperConfiguration(ProjectDependencyResolver.groovy:280)
        at ca.cutterslade.gradle.analyze.ProjectDependencyResolver.<init>(ProjectDependencyResolver.groovy:59)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at ca.cutterslade.gradle.analyze.AnalyzeDependenciesTask.action(AnalyzeDependenciesTask.groovy:52)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:494)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)

About

Demonstration of a problem I'm seeing with ca.cutterslade.gradle:gradle-dependency-analyze

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages