afterEvaluate AbstractMutationGuard$IllegalMutationException
- Langage dominant
- Java
- Étoiles
- 5.6k
- Forks
- 559
- Merge moyen
- 1 j 14 h
- PR mergées (30 j)
- 43
Description
I am getting
```
Caused by: org.gradle.api.reflect.ObjectInstantiationException: Could not create an instance of type com.diffplug.gradle.spotless.SpotlessExtensionImpl.
at at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.doCreate(DependencyInjectingInstantiator.java:70)
at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.newInstanceWithDisplayName(DependencyInjectingInstantiator.java:51)
at org.gradle.internal.extensibility.DefaultConvention.instantiate(DefaultConvention.java:229)
at org.gradle.internal.extensibility.DefaultConvention.create(DefaultConvention.java:150)
at org.gradle.internal.extensibility.DefaultConvention.create(DefaultConvention.java:145)
at com.diffplug.gradle.spotless.SpotlessPlugin.apply(SpotlessPlugin.java:53)
```
due to:
```
Caused by: org.gradle.api.internal.AbstractMutationGuard$IllegalMutationException: Project#afterEvaluate(Action) on project ':x:x-core' cannot be executed in the current context.
at org.gradle.api.internal.AbstractMutationGuard.createIllegalStateException(AbstractMutationGuard.java:39)
at org.gradle.api.internal.AbstractMutationGuard.assertMutationAllowed(AbstractMutationGuard.java:34)
at org.gradle.api.internal.project.DefaultProject.assertMutatingMethodAllowed(DefaultProject.java:1477)
at org.gradle.api.internal.project.DefaultProject.afterEvaluate(DefaultProject.java:1054)
at com.diffplug.gradle.spotless.SpotlessExtensionImpl.(SpotlessExtensionImpl.java:42)
```
Following some chat in the Gradle Slack chat:
> looks like a bug in the plugin implementation, so I'd raise a bug
`afterEvalute {}` should be avoided wherever possible, and I don't think it's needed here
https://github.com/diffplug/spotless/blob/1108c14f83d8e96bc86f923acebfedb5e4a43917/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessExtensionImpl.java#L42
> you could try setting `enforceCheck = false` and setting up the task dependency in a more idiomatic way
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez dans plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessExtensionImpl.java vers la ligne 42 et examinez comment l’action afterEvaluate est enregistrée. Reproduisez l’échec Gradle signalé, puis vérifiez que le plugin peut être appliqué sans l’exception AbstractMutationGuard et que le comportement existant de enforceCheck fonctionne toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- build-system
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100