與建置邏輯建置範例分享慣例外掛
版本 8.7
您可以使用 IntelliJ 原生匯入器 或 Eclipse Buildship 在 IDE 內開啟此範例。 |
此範例顯示如何共用慣例外掛程式,並將其套用至 buildSrc 中的製作程式碼和建置邏輯程式碼。
讓我們使用下列專案結構
專案結構
├── application
│ ├── src
│ │ └── main
│ └── build.gradle.kts
├── build-conventions
│ ├── src
│ │ ...
│ ├── build.gradle.kts
│ └── settings.gradle.kts
├── buildSrc
│ ├── src
│ │ ...
│ └── build.gradle.kts
├── list
│ ├── src
│ │ ...
│ └── build.gradle.kts
├── utilities
│ ├── src
│ │ ...
│ └── build.gradle.kts
└── settings.gradle.kts
專案結構
├── application
│ ├── src
│ │ └── main
│ └── build.gradle
├── build-conventions
│ ├── src
│ │ ...
│ ├── build.gradle
│ └── settings.gradle
├── buildSrc
│ ├── src
│ │ ...
│ └── build.gradle
├── list
│ ├── src
│ │ ...
│ └── build.gradle
├── utilities
│ ├── src
│ │ ...
│ └── build.gradle
└── settings.gradle
建置設定如下
settings.gradle.kts
rootProject.name = "sample"
includeBuild("build-conventions")
include("application", "utilities", "list")
settings.gradle
rootProject.name = 'sample'
includeBuild 'build-conventions'
include 'application', 'utilities', 'list'
共用的慣例外掛程式 myproject.java-conventions
在稱為 build-conventions
的包含建置中實作。然後建置會包含在根專案的設定檔案中,如上述程式片段所示。如需包含建置的更多詳細資料,請參閱 撰寫建置 章節。
然後 myproject.java-conventions
外掛程式會套用至 buildSrc
建置
buildSrc/build.gradle.kts
plugins {
id("myproject.java-conventions")
`kotlin-dsl`
}
repositories {
// for kotlin-dsl plugin
gradlePluginPortal()
}
buildSrc/build.gradle
plugins {
id 'myproject.java-conventions'
id 'groovy-gradle-plugin'
}
它也會套用至根專案的子專案
application/build.gradle.kts
plugins {
id("myproject.java-conventions")
// myproject.greeting is implemented in the buildSrc project that has myproject.java-conventions applied as well
id("myproject.greeting")
id("application")
}
utilities/build.gradle.kts
plugins {
id("myproject.java-conventions")
id("java-library")
}
list/build.gradle.kts
plugins {
id("myproject.java-conventions")
id("java-library")
}
application/build.gradle
plugins {
id 'myproject.java-conventions'
// myproject.greeting is implemented in the buildSrc project that has myproject.java-conventions applied as well
id 'myproject.greeting'
id 'application'
}
utilities/build.gradle
plugins {
id 'myproject.java-conventions'
id 'java-library'
}
list/build.gradle
plugins {
id 'myproject.java-conventions'
id 'java-library'
}
如需撰寫自訂 Gradle 外掛程式的更多詳細資料,請參閱 使用者手冊。