Gradleプラグインブロックがわかりません
apply plugin: 'someplugin1'
apply plugin: 'maven'
そして他のもの:
plugins {
id 'org.hidetake.ssh' version '1.1.2'
}
最初のブロックにはプラグイン名があります。 2番目のパッケージとバージョン。最初のブロックを使用する場所と、2番目のブロックを使用する場所がわかりません。
plugins
ブロックは、プラグインを適用する新しい方法であり、 Gradleプラグインリポジトリ で利用可能である必要があります。 apply
アプローチは、ビルドにプラグインを追加するためのより古く、より柔軟な方法です。
新しいplugins
メソッドは、マルチプロジェクト構成(subprojects
、allprojects
)では機能しませんが、各子プロジェクトのビルド構成では機能します。
機能が進むにつれて、plugins
構成メソッドは古いアプローチを追い越すと思いますが、この時点で両方が同時に使用でき、同時に使用されます。
@cjstehnoで既に述べたように、apply plugin
は古いメソッドであり、避けるべきです。
プラグインDSLの導入により、ユーザーはプラグインを適用する従来の方法を使用する理由をほとんど持たないはずです。ビルドの作者が現在の動作の制限のためにプラグインDSLを使用できない場合に備えて、ここに文書化されています。
新しいplugins block
メソッドを使用すると、オプションのパラメーターapply
を使用して、プラグインを追加し、いつ適用するかを制御できます。
plugins {
id «plugin id» version «plugin version» [apply «false»]
}
plugins
ブロックに既に追加されているが適用されていないプラグインを適用する状況では、引き続きレガシーメソッドを使用します。たとえば、マスタープロジェクトにプラグインxyz
が追加されますが、適用されません。サブプロジェクトsubPro
にのみ適用する必要があります。
plugins {
id "xyz" version "1.0.0" apply false
}
subprojects { subproject ->
if (subproject.name == "subPro") {
apply plugin: 'xyz'
}
}
このバージョンはもう必要ないことに注意してください。 plugins
、Java
などのCore Gradleプラグインのいずれかを使用している場合を除き、scala
ブロックにはバージョンが必要です。
私はSpring Boot
アプリケーションを作成しようとする際に違いを理解するのに少し時間を費やしました。それがしばらくして再び答えている理由です。 Spring Boot
plugin を使用する次の例は、非常に役立ちました。
現在何を使用すべきか:
plugins {
id "org.springframework.boot" version "2.0.1.RELEASE"
}
Gradle 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"