您可以在支持 Gradle 的 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!!!