Marketplace、Logo、签名与发布运营¶
发布插件不只是 publishPlugin。一个能长期维护的插件需要明确的 Marketplace 页面、可识别 Logo、签名、版本策略、发布渠道、兼容性验证和回滚预案。
发布路径¶
首次发布必须手动上传到 JetBrains Marketplace。之后才能用 Gradle 自动发布。
./gradlew buildPlugin
./gradlew signPlugin
./gradlew publishPlugin
发布前必须确认:
- 插件已签名。
- 本地 ZIP 能安装到干净目标 IDE。
- 版本号未重复,Marketplace 不接受同版本重复上传。
- Plugin Verifier 覆盖目标 IDE build。
- 插件页面满足 Marketplace 要求。
Token 与密钥¶
Marketplace Token 可以通过环境变量传入:
export ORG_GRADLE_PROJECT_intellijPlatformPublishingToken='YOUR_TOKEN'
Gradle:
intellijPlatform {
publishing {
token = providers.gradleProperty("intellijPlatformPublishingToken")
}
}
签名密钥不要提交到仓库:
intellijPlatform {
signing {
certificateChain = providers.environmentVariable("CERTIFICATE_CHAIN")
privateKey = providers.environmentVariable("PRIVATE_KEY")
password = providers.environmentVariable("PRIVATE_KEY_PASSWORD")
}
}
多行证书和私钥在 CI 或 IDE Run Configuration 中通常需要 Base64 编码后作为单行环境变量传入。
签名机制¶
官方签名流程是双重签名:
- 插件作者在构建时签名 ZIP。
- JetBrains Marketplace 校验作者签名。
- Marketplace 再用 JetBrains 证书签名分发产物。
未签名或证书被撤销的插件,安装时会出现警告。自定义插件仓库也可以签名,但不会被 Marketplace 再签,用户需要信任对应证书或 truststore。
验证签名:
./gradlew verifyPluginSignature
Release Channel¶
发布到非默认渠道:
intellijPlatform {
publishing {
channels = listOf("beta")
}
}
常用渠道:
| 渠道 | 仓库 |
|---|---|
alpha |
https://plugins.jetbrains.com/plugins/alpha/list |
beta |
https://plugins.jetbrains.com/plugins/beta/list |
eap |
https://plugins.jetbrains.com/plugins/eap/list |
非默认渠道是独立仓库,用户需要手动添加自定义插件仓库才能安装和接收更新。
Plugin Logo¶
Logo 会显示在 Marketplace 和 IDE Settings | Plugins 中。官方要求:
- 文件必须是 SVG。
- 默认文件名:
pluginIcon.svg。 - 深色主题可选文件名:
pluginIcon_dark.svg。 - 放在插件主 JAR 的
META-INF目录。 - 设计尺寸按 40x40 px 准备,会在 40x40 和 80x80 场景显示。
- 图形四周留至少 2px 透明 padding。
- SVG 理想大小小于 2-3 KB。
- 不建议把位图自动转 SVG,文件会过大且质量差。
- 确保亮色和暗色背景都可识别;必要时提供 dark 版本。
路径:
src/main/resources/META-INF/pluginIcon.svg
src/main/resources/META-INF/pluginIcon_dark.svg
2024.3+ Plugin DevKit 会检查缺失的 Plugin Logo。
Marketplace 页面¶
发布页应回答用户的实际问题:
- 插件解决什么问题。
- 支持哪些 IDE 和版本。
- 如何开始使用。
- 关键功能截图或 GIF。
- 配置和权限说明。
- 变更说明。
- 支持渠道。
- 隐私、网络访问和数据处理说明。
技术型插件尤其要说明兼容范围和依赖插件,减少用户在错误 IDE 中安装后的负反馈。
发布流水线建议¶
最小 CI:
./gradlew test
./gradlew buildPlugin
./gradlew verifyPlugin
发布 CI:
./gradlew signPlugin
./gradlew publishPlugin
门禁:
- 只从 tag 或 release branch 发布。
- 检查 changelog 是否更新。
- 检查版本号是否递增。
- 验证签名环境变量存在。
- 对 beta/eap 渠道先发预发布。
- 稳定后再发默认渠道。