您可以在支援 Gradle 的 IDE 中開啟此範例。

複合建置以開發 Gradle 外掛程式

此範例示範了複合建置,用於與消費建置結合開發 Gradle 外掛程式。

此外掛程式可能位於相同的儲存庫(僅供此建置使用),或者可能位於不同的儲存庫(供許多其他建置使用)。

這消除了對特殊 buildSrc 專案的需求,並使外掛程式原型設計更加容易。

Buildscript 相依性已被替換

在複合建置中,在 plugins { } 區塊或 buildscript classpath 配置中宣告的相依性,會以與其他相依性相同的方式被替換。在此範例中,建置宣告外掛程式 'org.sample.greeting',而此相依性會被包含的 greeting-plugin 建置所替換。

無需將 greeting-plugin 專案發布到儲存庫,就可以使用本地開發的 'org.sample.greeting' 外掛程式來建置專案。

> gradle --include-build ../greeting-plugin greeting
[composite-build] Configuring build: /home/user/gradle/sample/compositeBuilds/plugin-dev/greeting-plugin
:greeting-plugin:compileJava
:greeting-plugin:pluginDescriptors
:greeting-plugin:processResources
:greeting-plugin:classes
:greeting-plugin:jar
:my-greeting-app:greeting
Hi Bob!!!

外掛程式變更可以被測試

此範例可用於示範 Gradle 外掛程式的開發生命週期。編輯檔案 greeting-plugin/src/main/java/org/sample/GreetingTask.java 以變更 greeting,並重新執行消費者建置

> gradle --include-build ../greeting-plugin greeting
[composite-build] Configuring build: /home/user/gradle/sample/compositeBuilds/plugin-dev/greeting-plugin
:greeting-plugin:compileJava
:greeting-plugin:pluginDescriptors
:greeting-plugin:processResources
:greeting-plugin:classes
:greeting-plugin:jar
:my-greeting-app:greeting
G'day Bob!!!