Appearance
插件发布到 Gradle Plugin Portal
注册账号
- 访问 https://plugins.gradle.org
- 使用 GitHub 账号登录
- 进入 Profile → API Keys 页面
- 生成 API Key 和 Secret
配置发布
properties
# ~/.gradle/gradle.properties(用户级,不提交 Git)
gradle.publish.key=your-api-key
gradle.publish.secret=your-api-secretkotlin
// build.gradle.kts
plugins {
`kotlin-dsl`
`java-gradle-plugin`
id("com.gradle.plugin-publish") version "1.2.1"
}
group = "io.github.yourname"
version = "1.0.0"
gradlePlugin {
website.set("https://github.com/yourname/your-plugin")
vcsUrl.set("https://github.com/yourname/your-plugin")
plugins {
create("yourPlugin") {
id = "io.github.yourname.your-plugin"
implementationClass = "io.github.yourname.YourPlugin"
displayName = "Your Plugin Name"
description = "描述你的插件做什么"
tags.set(listOf("tag1", "tag2"))
}
}
}发布流程
bash
# 本地验证
./gradlew build
# 发布到 Gradle Plugin Portal
./gradlew publishPlugins
# 首次发布需要审核
# 之后更新版本直接发布发布到私有 Maven 仓库
kotlin
publishing {
repositories {
maven {
name = "company-nexus"
url = uri("https://nexus.example.com/repository/gradle-plugins/")
credentials {
username = providers.gradleProperty("nexusUser").orNull
password = providers.gradleProperty("nexusPassword").orNull
}
}
}
}bash
./gradlew publishPluginMavenPublicationToCompanyNexusRepository使用私有仓库中的插件
kotlin
// settings.gradle.kts
pluginManagement {
repositories {
maven { url = uri("https://nexus.example.com/repository/gradle-plugins/") }
gradlePluginPortal()
}
}下一步
- 构建缓存 - 高级特性