testcontainers / testcontainers/testcontainers-java
[Enhancement]: apply Gradle best practices
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 8.7k
- Forks
- 1.9k
- Ø Merge
- 2 T. 17 Std.
- Gemergte PRs (30 T.)
- 9
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der Gradle-Konfiguration des Core-Moduls und messe die im Issue gemeldete Konfigurationszeit von ungefähr 11 Sekunden auf einem Apple M1. Untersuche die im Issue gezeigten eifrigen Task-Deklarationen und vergleiche das Konfigurationsverhalten vor und nach den Änderungen. Als abgeschlossen gilt die Arbeit, wenn während der IDE-Abhängigkeitsaktualisierung keine unnötigen Tasks erstellt werden und die Konfigurationszeit reduziert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- groovy, kotlin
- Bereich
- build-system, performance
- Issue-Typ
- Refactoring
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100