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

gradle: excluding spotlessJava should also exclude spotlessApply

Aperta
#2,097 2 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
Ambito
build-system

Direzione di ricerca

Inizia riproducendo la sequenza segnalata in un progetto Java usando Gradle, Java 17 e Spotless 6.25.0, in particolare ./gradlew compileJava -xspotlessJava seguito da git diff. Esamina come sono collegati spotlessJava e spotlessApply; il lavoro è considerato completato quando l’esclusione di spotlessJava lascia invariato l’albero dei sorgenti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

When running gradle compileJava -xspotlessJava, spotlessApply will still run. Since spotlessApply copies files from build/spotless/spotlessJava to the source tree, this can overwrite unsaved work in progress, making teams lose valuable work due to a simple misunderstanding. Since this is a silent overwrite, team might also not notice that changes have been made, allowing bugs to enter the codebase.

spotlessApply should only ever run when the files it copies were created as part of the same build, to ensure no work is lost.

This happened on a company project, so I cannot quickly produce a public repo, but I could if need be. The steps to reproduce would be (in a java project using the spotless plugin...):

git clone ...
cd ...
// assuming this will have some file that can be formatted
 ./gradlew compileJava
  git reset --hard
  git checkout other_branch
  // assuming some file from earlier branch is different here
  
  ./gradlew compileJava -xspotlessJava
  git diff

The last git diff should not have any changes. However, currently for me this overwrites the source file with the spotless output from the ./gradlew compileJava task.

Using gradle8, java17, spotless 6.25.0 on MacOs.

Lingua principale
Java
Stelle
5.7k
Fork
563
Merge medio
1g 7h
PR unite (30g)
51

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.