testcontainers / testcontainers/testcontainers-java

[Enhancement]: apply Gradle best practices

Aperta
#10,286 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

type/enhancement
Lingua principale
Java
Stelle
8.7k
Fork
1.9k
Merge medio
2g 17h
PR unite (30g)
9

Descrizione

Module

Core

Proposal

Apply Gradle build practices so the build configuration does not take ~10 sec for every execution.

Currently, the project configuration takes ~11 seconds on Apple M1 which is very noticeable.
For instance, if I add a dependency to one of the modules, I have to wait for 10 seconds for the IDE to refresh. It does not have to be that long.

The slowness might be related to creating a lot of tasks eagerly "thanks" to old Groovy DSL code.

For instance, the code like the following always creates japicmp, and check tasks even in the case they will not be executed. The tasks are not required for IDE to pick up the updated project dependencies.

tasks.japicmp {
    dependsOn(tasks.shadowJar)
}
...

    project.tasks.check.dependsOn(japicmp)

PS. It would be nice to move to Kotlin DSL as per General Gradle Best Practices as well.

Guida per i contributori

Apri la guida per i contributori

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.

Direzione di ricerca

Inizia con la configurazione Gradle del modulo Core e misura il tempo di configurazione di circa 11 secondi riportato nell’issue su un Apple M1. Esamina le dichiarazioni eager dei task mostrate nell’issue e confronta il comportamento della configurazione prima e dopo le modifiche. Il lavoro è completato quando durante l’aggiornamento delle dipendenze dell’IDE non vengono creati task non necessari e il tempo di configurazione viene ridotto.

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

Valutazione

Stack tecnologico
groovy, kotlin
Ambito
build-system, performance
Tipo di issue
Refactoring
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
38/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.