Gradle 8.x: can not configure SQL format in `withinBlocksRegex`
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Ambito
- build-system, tooling
Direzione di ricerca
Riproduci la configurazione Kotlin DSL con Gradle 8.x e confrontala con Gradle 7.6.4. Inizia da SpotlessExtensionImpl.createFormatTasks, SpotlessExtension.maybeCreate e FormatExtension.withinBlocksHelper nello stack trace. Il lavoro è completato quando withinBlocksRegex accetta un formatter annidato senza generare l’eccezione di mutazione di Gradle su Gradle 8.x.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm using Gradle 8.6 and spotless 6.25.0 on macOS Sonoma 14.3.1
I was trying to format some SQL within another source file, but I just can not register the sql format. I tried the following:
spotless {
format("jsonnet") {
target("**/*.jsonnet", "**/*.libsonnet")
trimTrailingWhitespace()
indentWithSpaces()
withinBlocksRegex("sql", "(?s)|||\\v.*|||") {
sql { dbeaver() }
}
}
}
And it fails with:
Caused by: org.gradle.api.internal.AbstractMutationGuard$IllegalMutationException: DefaultTaskContainer#register(String, Class, Action) on task set 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:27)
at org.gradle.api.internal.DefaultDomainObjectCollection.assertMutable(DefaultDomainObjectCollection.java:440)
at org.gradle.api.internal.tasks.DefaultTaskContainer.register(DefaultTaskContainer.java:381)
at com.diffplug.gradle.spotless.SpotlessExtensionImpl.createFormatTasks(SpotlessExtensionImpl.java:56)
at com.diffplug.gradle.spotless.SpotlessExtension.maybeCreate(SpotlessExtension.java:273)
at com.diffplug.gradle.spotless.SpotlessExtension.format(SpotlessExtension.java:257)
at com.diffplug.gradle.spotless.SpotlessExtension.sql(SpotlessExtension.java:168)
at Build_logic_jsonnet_sql_spotless_gradle$2$1$1.execute(build-logic.jsonnet-sql-spotless.gradle.kts:14)
at Build_logic_jsonnet_sql_spotless_gradle$2$1$1.execute(build-logic.jsonnet-sql-spotless.gradle.kts:13)
at com.diffplug.gradle.spotless.FormatExtension.withinBlocksHelper(FormatExtension.java:1018)
at com.diffplug.gradle.spotless.FormatExtension.withinBlocksRegex(FormatExtension.java:1010)
at com.diffplug.gradle.spotless.FormatExtension.withinBlocksRegex(FormatExtension.java:1000)
at Build_logic_jsonnet_sql_spotless_gradle$2$1.execute(build-logic.jsonnet-sql-spotless.gradle.kts:13)
at Build_logic_jsonnet_sql_spotless_gradle$2$1.execute(build-logic.jsonnet-sql-spotless.gradle.kts:9)
at com.diffplug.gradle.spotless.SpotlessExtensionImpl.lambda$createFormatTasks$6(SpotlessExtensionImpl.java:67)
at org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
at org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
at org.gradle.internal.code.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:122)
at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:110)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
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.run(DefaultBuildOperationRunner.java:47)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:107)
at org.gradle.internal.ImmutableActionSet$SetWithManyActions.execute(ImmutableActionSet.java:329)
at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
at org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:124)
at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
at org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:1005)
... 170 more
Instead of the sql { ... } I tried e.g. googleJavaFormat() and it works without this failure, so I assume that this is a bug
It also doesn't work with googleJavaFormat
After some more experiments I found that this issue is likely related to gradle 8.x
The configuration apparently works with gradle 7.6.4
- Lingua principale
- Java
- Stelle
- 5.7k
- Fork
- 565
- Merge medio
- 2g 2h
- PR unite (30g)
- 57
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di diffplug/spotless
-
google-java-format 1.37.0: NoSuchMethodError on JavaFormatterOptions$Style.valueOf (Style is now a record)Forse già presa @Goooler l’ha presa 4 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
diffplug/spotless#3126 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
diffplug/spotless#3125 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
shortenFullyQualifiedTypes corrupts method references on fields (x.field::m -> bogus import x.field)Forse già presa @maxandersen l’ha presa oggi. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
Add support for org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_record_parameterAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di diffplug/spotless
Issue simili
-
Bump up AWS SDK to 2.54.3Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
jenkinsci/ec2-plugin#2041 ·
-
L: github:actions L: php:composer
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
dependabot/dependabot-core#16493 ·
I maintainer di solito rispondono entro 1 giorno
-
SHOW EDIT of a subclass for an object of its superclass: the form fails to open with AssertionErrorAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
FlashyReese/sodium-extra#608 ·