您可以使用 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 外掛程式的更多詳細資料,請參閱 使用者手冊