| interface GreetingPluginExtension { |
| Property<String> getMessage() |
| Property<String> getGreeter() |
| } |
| |
| class GreetingPlugin implements Plugin<Project> { |
| void apply(Project project) { |
| def extension = project.extensions.create('greeting', GreetingPluginExtension) |
| project.task('hello') { |
| doLast { |
| println "${extension.message.get()} from ${extension.greeter.get()}" |
| } |
| } |
| } |
| } |
| |
| apply plugin: GreetingPlugin |
| |
| |
| greeting { |
| message = 'Hi' |
| greeter = 'Gradle' |
| } |
| # buildSrc 是 Gradle 默认的插件目录,编译 Gradle 的时候会自动识别这个目录,将其中的代码编译为插件 |
| |
| 1. 在父工程中新建1个名为buildSrc的子模块 |
| 2. 打开父工程的settings.gradle,从 included modules 移除该子模块,重新构建,然后只保留 build.gradle 和 src/main 目录,其他全部删掉 |
| 3. 编写该子模块下的build.gradle |
| apply plugin: 'groovy' |
| apply plugin: 'maven-publish' |
| dependencies { |
| implementation gradleApi() |
| implementation localGroovy() |
| } |
| repositories { |
| google() |
| jcenter() |
| mavenCentral() |
| } |
| |
| sourceSets { |
| main { |
| groovy { |
| srcDir 'src/main/groovy' |
| } |
| } |
| } |
- 在如下目录下新建Text.groovy

| package com.atguigu |
| import org.gradle.api.Plugin |
| import org.gradle.api.Project |
| class Text implements Plugin<Project>{ |
| @Override |
| void apply(Project project) { |
| project.task("atguigu"){ |
| doLast{ |
| println("自定义atguigu插件") |
| } |
| } |
| } |
| } |
- 在如下目录下新建以.properties 结尾的文件

| |
| implementation-class=com.atguigu.Text |
| apply plugin:'com.atguigu.plugin' |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术