
plugin-deployment
by zeka-stack
一个 IDEA Plugin 项目, 包含多个使用的小插件
SKILL.md
name: plugin-deployment description: 将 IntelliJ IDEA 插件部署到 JetBrains Marketplace 和远程服务器。用于发布插件、更新版本、部署站点文档或管理插件发布。支持版本管理、自动化部署工作流和文档生成。
IntelliJ IDEA 插件部署
本 Skill 提供将 IntelliJ IDEA 插件部署到 JetBrains Marketplace 和远程服务器的指导。涵盖版本管理、自动化部署工作流、文档生成和服务器部署。
何时使用本 Skill
在以下场景使用本 Skill:
- 发布插件到 JetBrains Marketplace
- 部署插件 ZIP 文件到远程服务器
- 更新多个模块的插件版本
- 部署站点文档和落地页
- 生成 What's New 页面和文档清单
- 管理插件托管的 Nginx 配置
- 执行批量部署操作
部署脚本概览
1. deploy.sh - 统一部署脚本
位置: 项目根目录
用途: 发布和部署插件的主脚本。
用法:
# 部署插件并更新版本
./deploy.sh <plugin-name> -v <version>
# 仅执行特定操作
./deploy.sh <plugin-name> -p # 仅发布到市场
./deploy.sh <plugin-name> -z # 仅上传 ZIP
./deploy.sh <plugin-name> -d # 仅部署站点目录
./deploy.sh <plugin-name> -n # 部署 Nginx 配置
# 全局操作(无需指定插件名称)
./deploy.sh -n # 部署全局 Nginx 配置
./deploy.sh -w # 部署 latest.html (What's New 页面)
支持的插件:
engine- intelli-ai-enginejavadoc- intelli-ai-javadocchangelog- intelli-ai-changelognacos- intelli-ai-nacostracer- intelli-ai-tracerswagger- intelli-ai-swaggerarchiver- archiver-manhelper- zks-dev-helper
部署步骤 (未指定特定标志时):
- 发布到市场 (
-p): 执行gradlew publishPlugin - 上传 ZIP (
-z): 上传插件 ZIP 到远程服务器 - 部署站点 (
-d): 部署站点目录(落地页、文档等)
远程服务器配置:
- 主机:
aliyun(SSH 别名) - 根目录:
/var/www/zeka-idea-plugin - 数据目录:
/var/www/data/intelli-ai-plugin - Nginx 配置:
/etc/nginx/conf.d
2. update_version.sh - 版本管理脚本
位置: 项目根目录
用途: 更新所有白名单插件的版本。
用法:
# 将所有插件更新到指定版本
./update_version.sh 2025.3.1
更新内容:
-
每个插件目录中的 gradle.properties:
pluginVersionkitVersionengineVersion(如果存在)
-
Nginx 配置 (
ideaplugin.dong4j.site.conf):- 响应头中的版本号
白名单插件:
- intelli-ai-engine
- intelli-ai-javadoc
- intelli-ai-changelog
- intelli-ai-nacos
- intelli-ai-swagger
- intelli-ai-tracer
- idea-plugin-kit
- zks-dev-helper
- archiver-man
版本格式: x.y.z 或 x.y.z.w (例如: 2025.3.1)
3. generate-whatsnew.sh - What's New 页面生成器
位置: 项目根目录
用途: 从所有插件的更新日志生成聚合的 What's New 页面。
用法:
# 生成 latest.html
./generate-whatsnew.sh
功能:
- 扫描所有插件的
includes/pluginChanges.html文件 - 验证插件(检查
plugin.xml) - 从
plugin.xml提取插件名称 - 生成包含聚合更新日志的
latest.html - 复制到
intelli-ai-engine/src/main/resources/whatsnew/latest.html - 提取最新 Engine 版本并创建版本特定的 HTML 文件
- 更新
InternalWhatsNewProvider.java的版本映射
输出文件:
latest.html(项目根目录) - 聚合更新日志页面intelli-ai-engine/src/main/resources/whatsnew/latest.html- 用于 IDE 显示的副本intelli-ai-engine/src/main/resources/whatsnew/{version}.html- 版本特定的更新日志
允许的插件 (按顺序):
- intelli-ai-engine
- intelli-ai-javadoc
- intelli-ai-changelog
- intelli-ai-nacos
- intelli-ai-tracer
4. generate-docs-list.sh - 文档清单生成器
位置: 项目根目录
用途: 从文档目录中的 Markdown 文件生成 docs-list.json。
用法:
# 为插件生成 docs-list.json
./generate-docs-list.sh <docs-dir>
# 示例:
./generate-docs-list.sh intelli-ai-engine/site/docs
功能:
- 扫描指定文档目录中的
.md文件 - 生成包含文件名和路径的
docs-list.json - 输出格式: 包含
name和path字段的 JSON 数组
输出格式:
[
{
"name": "quick-start",
"path": "./docs/quick-start.md"
},
{
"name": "user-guide",
"path": "./docs/user-guide.md"
}
]
5. Makefile - 构建和部署快捷操作
位置: 项目根目录
用途: 为常见的构建和部署操作提供便捷快捷方式。
常用命令:
# 构建操作
make build-engine # 构建 engine 插件
make build-javadoc # 构建 javadoc 插件
make quick-build # 构建所有插件(并行)
# 清理操作
make clean-engine # 清理 engine 插件
make quick-clean # 清理所有插件(并行)
# 部署操作
make deploy-engine # 部署 engine 插件
make deploy-javadoc # 部署 javadoc 插件
make quick-deploy # 部署子插件(并行)
# 版本管理
make version # 显示所有插件版本
# 本地安装
make copy-zips # 构建并复制 ZIP 到 Downloads
make install-plugins # 安装插件到本地 IDEA
make copy-install-upload # 复制、安装并上传到服务器
插件目录:
idea-plugin-kit- 共享工具库intelli-ai-engine- AI 引擎插件intelli-ai-javadoc- Javadoc 生成插件intelli-ai-changelog- 更新日志插件intelli-ai-nacos- Nacos 集成插件intelli-ai-tracer- 追踪插件
常见部署工作流
完整发布工作流
# 1. 更新所有插件版本
./update_version.sh 2025.3.1
# 2. 生成 What's New 页面
./generate-whatsnew.sh
# 3. 部署 What's New 页面
./deploy.sh -w
# 4. 部署每个插件(可并行执行)
./deploy.sh engine -v 2025.3.1
./deploy.sh javadoc -v 2025.3.1
./deploy.sh changelog -v 2025.3.1
./deploy.sh nacos -v 2025.3.1
./deploy.sh tracer -v 2025.3.1
# 5. 部署 Nginx 配置(如需要)
./deploy.sh -n
仅文档更新
# 1. 生成文档清单
./generate-docs-list.sh intelli-ai-javadoc/site/docs
# 2. 仅部署站点目录
./deploy.sh javadoc -d
仅市场发布
# 1. 更新版本
./update_version.sh 2025.3.1
# 2. 仅发布到市场
./deploy.sh engine -p
快速批量部署
# 使用 Makefile 进行并行操作
make quick-build # 并行构建所有插件
make quick-deploy # 并行部署子插件
插件特定部署
Engine 插件(核心依赖)
插件 ID: 29152
部署:
# 完整部署并更新版本
./deploy.sh engine -v 2025.3.1
# 仅市场发布
./deploy.sh engine -p
# 仅站点部署
./deploy.sh engine -d
重要: Engine 插件必须首先部署,因为其他插件依赖它。
Javadoc 插件
插件 ID: 28835
部署:
./deploy.sh javadoc -v 2025.3.1
Changelog 插件
插件 ID: 29154
部署:
./deploy.sh changelog -v 2025.3.1
Nacos 插件
插件 ID: 29156
部署:
./deploy.sh nacos -v 2025.3.1
Tracer 插件
插件 ID: 29155
部署:
./deploy.sh tracer -v 2025.3.1
远程服务器配置
服务器访问
- SSH 别名:
aliyun - 根目录:
/var/www/zeka-idea-plugin - 数据目录:
/var/www/data/intelli-ai-plugin - Nginx 配置:
/etc/nginx/conf.d
目录结构
/var/www/zeka-idea-plugin/
├── intelli-ai-engine/
│ ├── site/ # 站点目录(如果存在)
│ │ ├── landing.html
│ │ ├── docs.html
│ │ └── docs/
│ └── intelli-ai-engine.zip
├── intelli-ai-javadoc/
│ └── ...
└── ...
/var/www/data/intelli-ai-plugin/
├── intelli-ai-engine.zip
├── intelli-ai-javadoc.zip
└── ...
Nginx 配置
全局配置: ideaplugin.dong4j.site.conf
部署:
# 部署全局 Nginx 配置
./deploy.sh -n
功能:
- 上传 Nginx 配置文件到
/etc/nginx/conf.d/ - 测试 Nginx 配置 (
nginx -t) - 重载 Nginx 服务 (
systemctl restart nginx)
文件位置
项目根目录文件
deploy.sh- 主部署脚本update_version.sh- 版本更新脚本generate-whatsnew.sh- What's New 生成器generate-docs-list.sh- 文档清单生成器Makefile- 构建快捷方式DEPLOY.md- 部署文档ideaplugin.dong4j.site.conf- Nginx 配置download.dong4j.site.conf- 下载服务器 Nginx 配置latest.html- 生成的 What's New 页面buy-me-a-coffee.html- 捐赠页面
插件特定文件
每个插件目录包含:
includes/pluginChanges.html- 更新日志文件site/- 站点目录(可选)landing-v2.html- 落地页docs.html- 文档索引docs/- 文档 Markdown 文件
build/distributions/- 构建产物(ZIP 文件)gradle.properties- 插件配置(版本等)
最佳实践
版本管理
-
始终先更新版本:
./update_version.sh 2025.3.1 -
验证版本更新:
make version -
使用语义化版本:
x.y.z或x.y.z.w
部署顺序
- Engine 插件优先 (必需依赖)
- 核心插件 (javadoc, changelog)
- 集成插件 (nacos, tracer)
- Nginx 配置 (如果更改)
文档更新
-
部署站点前生成文档清单:
./generate-docs-list.sh <plugin>/site/docs -
重大发布前更新 What's New:
./generate-whatsnew.sh ./deploy.sh -w
错误处理
-
部署前检查构建产物:
ls -la <plugin>/build/distributions/*.zip -
验证站点目录存在:
ls -la <plugin>/site/landing-v2.html -
重载前测试 Nginx 配置:
ssh aliyun "nginx -t"
故障排查
构建失败
问题: gradlew buildPlugin 失败
解决方案:
- 检查 Java 版本(需要 Java 17+)
- 验证 Gradle wrapper 可执行
- 检查缺失的依赖
- 查看构建日志中的具体错误
部署失败
问题: rsync 或 ssh 连接失败
解决方案:
- 验证 SSH 别名
aliyun已配置 - 检查 SSH 密钥认证
- 验证远程目录权限
- 测试连接:
ssh aliyun "ls -la /var/www/zeka-idea-plugin"
版本更新问题
问题: 版本未在所有文件中更新
解决方案:
- 验证插件在白名单中
- 检查
gradle.properties存在 - 验证字段名称匹配 (
pluginVersion,kitVersion,engineVersion) - 使用详细输出再次运行更新脚本
Nginx 配置问题
问题: Nginx 重载失败
解决方案:
- 测试配置:
ssh aliyun "nginx -t" - 检查配置文件中的语法错误
- 验证文件权限
- 查看 Nginx 错误日志:
ssh aliyun "tail -f /var/log/nginx/error.log"
参考
- 部署文档:
DEPLOY.md - 插件开发: 参见
idea-plugin-devskill - 项目结构: 参见项目根目录
- 示例插件:
intelli-ai-javadoc/,intelli-ai-changelog/
示例
部署新版本
# 1. 更新所有版本
./update_version.sh 2025.3.2
# 2. 生成 What's New
./generate-whatsnew.sh
# 3. 部署 What's New 页面
./deploy.sh -w
# 4. 部署所有插件
./deploy.sh engine -v 2025.3.2
./deploy.sh javadoc -v 2025.3.2
./deploy.sh changelog -v 2025.3.2
./deploy.sh nacos -v 2025.3.2
./deploy.sh tracer -v 2025.3.2
# 5. 部署 Nginx 配置
./deploy.sh -n
快速文档更新
# 更新 javadoc 插件的文档
./generate-docs-list.sh intelli-ai-javadoc/site/docs
./deploy.sh javadoc -d
仅市场发布
# 发布到市场而不部署站点
./update_version.sh 2025.3.2
./deploy.sh engine -p
./deploy.sh javadoc -p
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です