创建一个最简单的gradle插件

创建Project

idea新建一个project叫做myplugin

语言选kotlin,编译系统选gradle,jdk选17,gradle dsl 选kotlin

这个工程的产物是一个 gradle plugin,同时它自己也依赖了这个plugin

settings.gradle.kt

rootProject.name = "myplugin"

pluginManagement {
    repositories {
        // kotlin("jvm"), `java-gradle-plugin`, `maven-publish` 等要用到
        mavenCentral()
        // 一会编译完成后会把插件发布到local并依赖
        mavenLocal()
    }
}

build.gradle.kt

plugins {
    // kotlin支持
    kotlin("jvm") version "1.8.21"
    // gradle api 支持
    `java-gradle-plugin`
    // maven local 支持
    `maven-publish`
    // 自己编译出来的插件,首次编译成功后再打开
    // id("org.example.greeting") version "1.1-SNAPSHOT"
}

// jar包名称和版本
group = "org.example"
version = "1.1-SNAPSHOT"

repositories {
    mavenCentral()
}

gradlePlugin {
    plugins {
        // 插件id和主类,编译过程中这两个属性会以文件的形式记录到jar包的resource中
        // 这样 gradle 能从jar包中找到主类并调用
        create("simplePlugin") {
            id = "org.example.greeting"
            implementationClass = "GreetingPlugin"
        }
    }
}

主类

import org.gradle.api.Plugin
import org.gradle.api.Project

class GreetingPlugin : Plugin<Project> {
    // 插件的核心就是一个 appy 方法
    override fun apply(project: Project) {
        project.task("hello") {
            it.doLast {
                println("Hello from the GreetingPlugin")
            }
        }
    }
}

测试

执行 ./gradlew :publishToMavenLocal进行编译和本地发布

build.gradle.kt 中打开本工程依赖 “org.example.greeting”

PS F:\ws\myplugin> ./gradlew -q hello
Hello from the GreetingPlugin

参考

https://docs.gradle.org/current/userguide/custom_plugins.html

https://docs.gradle.org/current/userguide/publishing_maven.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值