Vor einigen Wochen wurde Gradle 5.1 fertiggestellt. Zeit, sich einmal kurz die drei wichtigsten Änderungen (für Java Entwickler) anzuschauen.
Repository to dependency matching
Hiermit ist die Möglichkeit gemeint, bestimmte Repositories als Quelle für bestimmte Pattern in den Artefakt-Ids festlegen zu können. Z. B.:
repositories {
maven {
url "https://myrepo.de"
content {
includeGroupByRegex "de.oio.projectname*"
}
}
}
Da wir wissen, dass alle Artefakte von “projectname” nur auf myrepo.de hochgeladen werden, kann die Suche in anderen Repositories gespart werden.
Verbesserte und erweiterte Fortschrittsevents
Während eines Builds sind jetzt zusätzliche Informationen für Fortschrittsanzeigen und Reporting verfügbar.
TaskOperationDescriptor
: Enthält jetzt zusätzlich einen Verweis auf das Plugin, welches den aktuellen Task registriert hatTaskExecutionResult
: Enthält jetzt eine Liste warum ein Task ausgeführt wurde, und ob diese Ausführung inkrementell war.JavaCompileTaskOperationResult
: Enthält jetzt zusätzliche Informationen zu den ausgeführten Annotations-Prozessoren
Features, die jetzt nicht mehr experimentell sind:
Um insbesondere bei großen Builds Zeit zu sparen, gibt es seit einiger Zeit eine neue API, welche Task Konfigurationen nur durchführt, wenn diese Tasks auch benutzt werden. Um diese API zu benutzen, können Tasks so registriert werden:
// Alter Weg, mit dem bisher Tasks erstellt wurden
task myTask(type: MyTask) {
// Dieses Konfigurationselement wird immer ausgeführt
}
tasks.register("myTask", MyTask) {
// Dieses Konfigurationselement wird nur ausgeführt, wenn notwendig
}

