Come già accennato da @cjstehno, apply pluginè un metodo legacy che dovresti evitare.
Con l'introduzione dei plug-in DSL, gli utenti dovrebbero avere poche ragioni per utilizzare il metodo legacy di applicazione dei plug-in. È documentato qui nel caso in cui un autore di build non possa utilizzare i plug-in DSL a causa delle restrizioni sul modo in cui funziona attualmente.
Con il nuovo plugins blockmetodo, puoi aggiungere un plugin e controllare quando applicarlo usando un parametro opzionale apply:
plugins {
id «plugin id» version «plugin version» [apply «false»]
}
Utilizzeresti comunque il metodo legacy in situazioni in cui desideri applicare un plug-in già aggiunto ma non applicato nel tuo pluginsblocco. Ad esempio, nel progetto principale xyzviene aggiunto un plug-in ma non applicato e deve essere applicato solo in un sottoprogetto subPro:
plugins {
id "xyz" version "1.0.0" apply false
}
subprojects { subproject ->
if (subproject.name == "subPro") {
apply plugin: 'xyz'
}
}
Si noti che non è più necessaria la versione. È necessaria la versione del pluginsblocco a meno che non si sta utilizzando uno dei plugin core Gradle, come ad esempio java, scala...
Ho trascorso un po 'di tempo a capire la differenza mentre provavo a creare Spring Bootun'applicazione, ed è per questo che rispondo di nuovo dopo un po'. Il seguente esempio per l'utilizzo del Spring Bootplugin mi ha aiutato molto:
Cosa dovrebbe essere attualmente utilizzato:
plugins {
id "org.springframework.boot" version "2.0.1.RELEASE"
}
Cosa era stato usato prima del Grado 2.1:
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"