Wie bereits von @cjstehno erwähnt, apply pluginist dies eine Legacy-Methode, die Sie vermeiden sollten.
Mit der Einführung der Plugins DSL sollten Benutzer wenig Grund haben, die Legacy-Methode zum Anwenden von Plugins zu verwenden. Es wird hier dokumentiert, falls ein Build-Autor die Plugins DSL aufgrund von Einschränkungen in der aktuellen Funktionsweise nicht verwenden kann.
Mit der neuen plugins blockMethode können Sie ein Plugin hinzufügen und mithilfe eines optionalen Parameters steuern, wann es angewendet werden soll apply:
plugins {
id «plugin id» version «plugin version» [apply «false»]
}
Sie würden die Legacy-Methode weiterhin in Situationen verwenden, in denen Sie ein bereits hinzugefügtes, aber nicht angewendetes Plugin in Ihrem pluginsBlock anwenden möchten . Beispielsweise wird im Masterprojekt ein Plugin xyzhinzugefügt, aber nicht angewendet, und es sollte nur in einem Teilprojekt angewendet werden subPro:
plugins {
id "xyz" version "1.0.0" apply false
}
subprojects { subproject ->
if (subproject.name == "subPro") {
apply plugin: 'xyz'
}
}
Beachten Sie, dass Sie die Version nicht mehr benötigen. Die Version wird in dem gewünschten pluginsBlock , wenn Sie eine des Kern Gradle Plugins verwenden, wie zum Beispiel java, scala...
Ich habe einige Zeit damit verbracht, den Unterschied zu verstehen, während ich versucht habe, eine Spring BootAnwendung zu erstellen , und deshalb beantworte ich dies nach einer Weile erneut. Das folgende Beispiel für die Verwendung des Spring BootPlugins hat mir sehr geholfen:
Was sollte aktuell verwendet werden:
plugins {
id "org.springframework.boot" version "2.0.1.RELEASE"
}
Was wurde vor Gradle 2.1 verwendet:
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.1.RELEASE"
}
}
apply plugin: "org.springframework.boot"