创建一个最简单的gradle插件

创建一个最简单的gradle插件

文章目录 创建Projectsettings.gradle.ktbuild.gradle.kt主类测试参考

创建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.Pluginimport org.gradle.api.Projectclass GreetingPlugin : Plugin { // 插件的核心就是一个 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:wsmyplugin> ./gradlew -q helloHello from the GreetingPlugin 参考

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

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


比丘资源网 » 创建一个最简单的gradle插件

发表回复

提供最优质的资源集合

立即查看 了解详情