Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Gradle 8.x: can not configure SQL format in `withinBlocksRegex`

Aperta
#2,054 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
Stack tecnologico
java, kotlin, sql

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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di diffplug/spotless

Tutte le issue di diffplug/spotless

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.