Như đã được đề cập bởi @cjstehno, đây apply pluginlà một phương pháp kế thừa mà bạn nên tránh.
Với việc giới thiệu các plugin DSL, người dùng sẽ có ít lý do để sử dụng phương pháp kế thừa áp dụng các plugin. Nó được ghi lại ở đây trong trường hợp tác giả bản dựng không thể sử dụng các plugin DSL do những hạn chế trong cách thức hoạt động của nó.
Với plugins blockphương pháp mới , bạn có thể thêm plugin và kiểm soát thời điểm áp dụng nó bằng tham số tùy chọn apply:
plugins {
id «plugin id» version «plugin version» [apply «false»]
}
Bạn vẫn sẽ sử dụng phương pháp cũ trong các tình huống bạn muốn áp dụng một plugin đã được thêm nhưng chưa được áp dụng trong pluginskhối của mình . Ví dụ, trong dự án chính, một plugin xyzđược thêm nhưng không được áp dụng và nó chỉ được áp dụng trong một tiểu dự án subPro:
plugins {
id "xyz" version "1.0.0" apply false
}
subprojects { subproject ->
if (subproject.name == "subPro") {
apply plugin: 'xyz'
}
}
Lưu ý rằng bạn không cần phiên bản nữa. Các phiên bản được yêu cầu trong pluginskhối, trừ khi bạn đang sử dụng một trong những plugin lõi Gradle, chẳng hạn như java, scala, ...
Tôi đã dành một chút thời gian để hiểu sự khác biệt trong khi cố gắng tạo một Spring Bootứng dụng và đó là lý do tại sao tôi sẽ trả lời lại điều này sau một thời gian. Ví dụ sau để sử dụng Spring Bootplugin đã giúp tôi rất nhiều:
Những gì hiện nên được sử dụng:
plugins {
id "org.springframework.boot" version "2.0.1.RELEASE"
}
Những gì đã được sử dụng trước Lớp 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"