Saya tidak mengerti blok plugins gradle
apply plugin: 'someplugin1'
apply plugin: 'maven'
dan yang lainnya:
plugins {
id 'org.hidetake.ssh' version '1.1.2'
}
Di blok pertama, kami memiliki beberapa nama plugin. dalam paket dan versi yang kedua. Saya tidak mengerti di mana saya harus menggunakan blok pertama dan kapan blok kedua.
groovy
gradle
gradle-plugin
Yevgen Kulik
sumber
sumber
Jawaban:
The
plugins
blok adalah metode baru menerapkan plugin, dan mereka harus tersedia dalam repositori plugin yang Gradle . Ituapply
Pendekatan adalah lebih tua, metode namun lebih fleksibel menambahkan plugin untuk membangun Anda.plugins
Metode baru tidak berfungsi dalam konfigurasi multi-proyek (subprojects
,allprojects
), tetapi akan bekerja pada konfigurasi bangun untuk setiap proyek anak.Saya akan berpikir bahwa ketika fungsionalitas berkembang,
plugins
metode konfigurasi akan mengambil alih pendekatan yang lebih lama, tetapi pada titik ini keduanya dapat dan digunakan secara bersamaan.sumber
plugins {...}
) tidak berfungsi untuk plugin pribadi Anda atau plugin perusahaan yang tidak dipublikasikan ke repo plugin Gradle resmi. Itu sebabnya saya berharap pendekatan lama setidaknya akan bertahan sampai yang baru mendukung pencarian di repositori pribadi.plugins
berfungsi dalam multi-proyek, menurut tutorial Gradle (Gradle versi 5.6.2) guides.gradle.org/creating-multi-project-builds/... Ia menggunakanplugins
blok denganapply false
untuk menambahkan plugin ke proyek keseluruhan, tetapi tidak menambahkan ke proyek root. Subproyek menggunakanplugins
blok lagi untuk menambahkan plugin.plugins
lebihapply plugin
.apply plugin
Seperti yang telah disebutkan oleh @cjstehno,
apply plugin
ini adalah metode warisan yang harus Anda hindari.Dengan
plugins block
metode baru , Anda dapat menambahkan plugin dan mengontrol kapan menerapkannya menggunakan parameter opsionalapply
:Anda masih akan menggunakan metode lawas dalam situasi di mana Anda ingin menerapkan plugin yang sudah ditambahkan tetapi tidak diterapkan di
plugins
blok Anda . Misalnya, dalam proyek master, sebuah pluginxyz
ditambahkan tetapi tidak diterapkan dan itu harus diterapkan hanya dalam sub proyeksubPro
:Perhatikan bahwa Anda tidak membutuhkan versi itu lagi. Versi ini diperlukan di
plugins
blok kecuali Anda menggunakan salah satu plugin Core Gradle, sepertijava
,scala
...Saya menghabiskan waktu memahami perbedaan ketika mencoba membuat
Spring Boot
aplikasi, dan itulah sebabnya saya menjawab ini lagi setelah beberapa saat. Contoh berikut untuk menggunakanSpring Boot
plugin membantu saya:Apa yang saat ini harus digunakan:
Apa yang telah digunakan sebelum Gradle 2.1:
sumber
apply plugin xxx
keplugins { id xxx }
(saya mencobanya dan itu tidak bekerja)