Skip to content

buildSrc 插件

buildSrc 是开发项目内共享插件的最佳方式,详细的 buildSrc 结构见 buildSrc

预编译脚本插件(推荐)

kotlin
// buildSrc/src/main/kotlin/java-conventions.gradle.kts
plugins {
    java
    jacoco
}

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

tasks.withType<Test> {
    useJUnitPlatform()
    finalizedBy(tasks.named("jacocoTestReport"))
}

Kotlin 类插件

kotlin
// buildSrc/src/main/kotlin/com/example/VersionCheckPlugin.kt
package com.example

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

class VersionCheckPlugin : Plugin<Project> {
    override fun apply(project: Project) {
        project.tasks.register("checkVersion") {
            group = "verification"
            doLast {
                val version = project.version.toString()
                require(!version.endsWith("SNAPSHOT")) {
                    "发布版本不能是 SNAPSHOT: $version"
                }
                println("版本检查通过:$version")
            }
        }
    }
}

注册插件 ID

kotlin
// buildSrc/build.gradle.kts
plugins {
    `kotlin-dsl`
}

gradlePlugin {
    plugins {
        create("versionCheck") {
            id = "com.example.version-check"
            implementationClass = "com.example.VersionCheckPlugin"
        }
    }
}

使用

kotlin
// 子项目 build.gradle.kts
plugins {
    id("com.example.version-check")
    id("java-conventions")
}

下一步