Bei der Entwicklung von CUBA haben wir alle drei Haupt-Build-Tools verwendet - wir haben mit Ant begonnen und dann für kurze Zeit zu Maven gewechselt. Jetzt verwenden wir Gradle und es scheint, dass wir in naher Zukunft dabei bleiben werden.
Vor nicht allzu langer Zeit wurde Gradle 5.0 veröffentlicht. Diese Version verfügt über eine Vielzahl neuer Funktionen, mit denen Entwickler komplexere Skripte schreiben und ihre Projekte noch schneller und schmerzloser zusammenstellen können.

Kotlin DSL
Die erste Innovation ist das Kotlin DSL . Jetzt können Build-Skripte in Kotlin geschrieben werden, was die Arbeit im Grunde genommen aufgrund der automatischen Vervollständigung erheblich beschleunigt. Das Hervorheben von Syntaxfehlern und andere nützliche Dinge von IDEA funktionieren ebenfalls. Natürlich versucht IDEA auch, dies alles für Groovy zu tun, aber dennoch macht sich starkes Tippen bemerkbar. Es wird angegeben, dass das Kotlin DSL stabil ist, so dass Sie es ohne Angst verwenden können.
Muss ich zu Kotlin wechseln? Nein, es ist nicht erforderlich. Groovy DSL wird unterstützt und nicht aufgegeben. Als nächstes müssen Sie jedes Projekt separat betrachten. Um Kotlin DSL verwenden zu können, benötigen Sie Gradle 5 und ein JDK von mindestens 8. In einigen Fällen ist dies möglicherweise nicht der Fall. Darüber hinaus bietet Groovy aufgrund der laxen Eingabe eine größere Flexibilität bei der Skripterstellung. In jedem Fall liegt die Entscheidung bei den Entwicklern. Wenn Sie sich dennoch für einen Wechsel zu Kotlin entscheiden, gibt es einen Migrationsleitfaden .
Interaktive Init
Schließlich können Sie während der ersten Zusammenstellung des Projekts keine Schlüsselbündel mehr schreiben, sondern den Projekttyp, die Sprache des Build-Skripts und sogar das Framework zum Testen im interaktiven Modus auswählen. Wir schreiben gradle init - und genießen. Unterstützte Projektgenerierung auf Kotlin!
Inkrementelle Kompilierung und Verarbeitung von Anmerkungen
Der inkrementelle Kompilierungsmechanismus wird weiterentwickelt (einschließlich der Verarbeitung von Anmerkungen von Bibliotheken wie Lombok) - es ist nicht erforderlich, den gesamten Code neu zu kompilieren. Sie können Ihre eigenen Aufgaben erstellen, die die inkrementelle Kompilierung unterstützen.
Build-Prozesse werden durch den Build-Cache beschleunigt, die Arbeit mit dem Speicher wird optimiert.
FailFast-Test - Tests werden ab dem letzten Fehler gestartet (falls vorhanden, natürlich).
Abhängigkeitsmanagement
Unterstützung für Stücklistendateien - Prost!
Die Feinabstimmung der Regeln zum Ersetzen von Versionen ist deklariert. Sie können Programmcode schreiben, um besonders komplexe Fälle direkt in der Assembly-Datei zu behandeln . Am selben Ort - Deaktivieren von transitiven Abhängigkeiten.
Sie können erzwingen, dass die Version der Abhängigkeit blockiert wird, und verhindern, dass sie von älteren Versionen überschrieben wird.
Zusätzlich zu allem wird die Version "Freezing" für Abhängigkeiten unterstützt.
Neue Task-API
Der Verbesserungsprozess im Bereich der Aufgabenerstellung geht weiter. Es gibt ein paar neue Dinge, die sicherlich für viele nützlich sein werden.
Worker-API , mit der Sie Aufgaben parallel und mit unterschiedlichen Isolationsstufen ausführen können (auch auf verschiedenen JVMs). Sie können nicht nur nur parallel ausführen, sondern auch warten, bis andere Aufgaben abgeschlossen sind.
Timeout-API - Zum Festlegen der maximalen Ausführungszeit für die Aufgabe.
Konfigurationsvermeidungs-API - Ermöglicht das Erstellen oder Konfigurieren von Aufgaben, die noch nicht ausgeführt werden.
Zusammenfassend - ein gutes Tool ist für Kotlin noch besser - besonderer Dank, jetzt können Sie alles darauf schreiben: Front-End, Back-End, Mobile Client und Build-Skripte.