Appearance
脚本插件
脚本插件是最简单的插件形式,将构建逻辑提取到单独的 .gradle.kts 文件中,通过 apply from 引入。
创建脚本插件
kotlin
// gradle/publishing.gradle.kts
plugins {
`maven-publish`
}
java {
withSourcesJar()
withJavadocJar()
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["java"])
}
}
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/${project.findProperty("githubUser")}/my-lib")
credentials {
username = System.getenv("GITHUB_ACTOR")
password = System.getenv("GITHUB_TOKEN")
}
}
}
}应用脚本插件
kotlin
// build.gradle.kts
plugins {
`java-library`
}
// 引入脚本插件
apply(from = "gradle/publishing.gradle.kts")多个脚本插件组合
kotlin
// build.gradle.kts
apply(from = "gradle/publishing.gradle.kts")
apply(from = "gradle/quality.gradle.kts")
apply(from = "gradle/versioning.gradle.kts")脚本插件访问项目属性
kotlin
// gradle/quality.gradle.kts
plugins {
checkstyle
jacoco
}
checkstyle {
toolVersion = "10.12.5"
// 访问根项目文件
configFile = rootProject.file("config/checkstyle.xml")
}脚本插件 vs 约定插件
| 特性 | 脚本插件 | 约定插件(buildSrc) |
|---|---|---|
| IDE 支持 | 有限 | 完整 |
| 类型安全 | 有限 | 是 |
| 可测试性 | 低 | 高 |
| 复杂度 | 低 | 中 |
| 适合场景 | 简单共享 | 中复杂逻辑 |
下一步
- buildSrc 插件 - 更完善的插件开发