Gradle Buildskript organisieren

Gradle modularisieren

Es können externe Buildskripte eingebunden werden. Es macht mit wachsender Größe des Buildsriptes Sinn bestimmte Teile auszulagern. Diese externen Gradle Buildskripte sollten auch auf .gradle enden. Mit der apply from Anweisung kann Gradle externe Buildskripte inkludieren. Die Anweisung apply from erwartet eine URI als Parameter, so dass neben den lokalen Dateien auch Buildskripte von einem Webserver nachgeladen werden können. So können die Module zum Beispiel zentral verwaltet werden (lokaler Webserver).

Im Buildskript kann mit:

apply from: 'eclipse.gradle'

die nachfolgende eclipse.gradle eingebunden werden…

//
// Fix Modulepath
//
eclipse.classpath.file {
    whenMerged {
        entries.findAll { isModule(it) }.each { it.entryAttributes['module'] = 'true' }
    }
}

boolean isModule(entry) {
    // filter java 9 modules
    entry.kind == 'lib'  // Only libraries can be modules
}