您可以使用 IntelliJ 原生导入器Eclipse Buildship 在 IDE 中打开此示例。

用于开发 Gradle 插件的复合构建

此示例演示了用于开发 Gradle 插件以及使用构建的复合构建。

插件可以在同一个存储库中(仅供此构建使用),也可以在不同的存储库中(供许多其他构建使用)。

这消除了对特殊 buildSrc 项目的需求,并使原型插件变得更加容易。

构建脚本依赖项被替换

在复合构建中,在 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 以更改问候语,然后重新执行使用者构建

> 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!!!