一键导入
gh-release-jar-lib
将 Maven/Spring Boot 构建产物(可执行 JAR、target/lib 依赖目录、可选 JRE)归档到 GitHub Releases。在用户需要发布版本、上传 JAR/lib/JRE 到 GitHub Release 或“归档到 Releases”时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
将 Maven/Spring Boot 构建产物(可执行 JAR、target/lib 依赖目录、可选 JRE)归档到 GitHub Releases。在用户需要发布版本、上传 JAR/lib/JRE 到 GitHub Release 或“归档到 Releases”时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Analyze local code changes, automatically generate meaningful commit messages based on the changes, and push to remote repository (GitHub, GitLab, Gitee, Alibaba Cloud DevOps, etc.). Use when the user wants to commit and push changes with auto-generated commit messages, or needs help writing good commit messages.
在创建分支前,先读取并展示 pom.xml 当前版本号,让用户输入分支版本号;自动更新 main 分支 pom 版本并按版本创建分支。
Stop Git from tracking a file or directory while keeping it on disk (remove from index only). Use when the user has accidentally committed files/folders (e.g. node_modules, build output) and wants to "unlink" or "disassociate" them from Git, then prevent future commits via .gitignore.
Initialize git in a local project without a repository, connect it to a remote, and generate a proper .gitignore. Use when the user wants to link a local project to a remote git repository, set up git for an existing project, push a local project to GitHub/GitLab, or needs a .gitignore file for their project type.
| name | gh-release-jar-lib |
| description | 将 Maven/Spring Boot 构建产物(可执行 JAR、target/lib 依赖目录、可选 JRE)归档到 GitHub Releases。在用户需要发布版本、上传 JAR/lib/JRE 到 GitHub Release 或“归档到 Releases”时使用。 |
gh)gh auth status 显示已登录origin 指向 GitHubtarget/lib 和 JRE 目录需先打成 zip 再上传。gh release create 会从默认分支自动创建。jre-windows-x64.zip)。在项目根目录执行本 skill 自带的脚本(需先构建出 target/*.jar 和 target/lib/):
# 赋予执行权限(仅首次)
chmod +x .cursor/skills/gh-release-jar-lib/scripts/release.sh
# JAR + lib(默认)
VERSION=v1.0.0 .cursor/skills/gh-release-jar-lib/scripts/release.sh
# 仅 JAR,不打包 lib
INCLUDE_LIB=0 VERSION=v1.0.0 .cursor/skills/gh-release-jar-lib/scripts/release.sh
# 同时打包并上传 JRE + run.bat
BAT_FILE=/path/to/run.bat \
JRE_DIR=/path/to/OpenJDK21U-jre_x64_windows_hotspot_21.0.10_7 \
JRE_SUFFIX=windows-x64 \
VERSION=v1.0.0 \
.cursor/skills/gh-release-jar-lib/scripts/release.sh
脚本环境变量:
| 变量 | 必填 | 说明 |
|---|---|---|
VERSION | 否 | Release 标签(如 v1.0.0),不设则交互输入 |
INCLUDE_LIB | 否 | 是否打包并上传 target/lib,默认 1(打包);设为 0/false/no 则仅上传 JAR |
BAT_FILE | 否 | Windows 启动脚本(如 run.bat)的绝对路径;会复制为 target/run.bat 并随 Release 上传 |
JRE_DIR | 否 | 解压后的 JRE 目录绝对路径;设置后会打包为 target/jre-<JRE_SUFFIX>.zip 并上传 |
JRE_SUFFIX | 否 | JRE zip 文件名后缀,默认 bundled(产出 jre-bundled.zip);建议按平台命名如 windows-x64、mac-aarch64 |
脚本会:必选上传 JAR → 若 INCLUDE_LIB 为真且存在 target/lib 则打包并上传 lib.zip → 若设置了 BAT_FILE 则复制并上传 run.bat → 若设置了 JRE_DIR 则打包并上传 JRE → 调用 gh release create <tag>。
打包 lib(在项目根目录):
cd target && zip -r lib.zip lib && cd ..
(可选)打包 JRE:将解压后的 JRE 目录打成 zip,便于用户解压即用。
# 在 JRE 父目录下打包,得到 jre-windows-x64.zip
cd "$(dirname /path/to/OpenJDK21U-jre_x64_windows_hotspot_21.0.10_7)"
zip -r /path/to/project/target/jre-windows-x64.zip OpenJDK21U-jre_x64_windows_hotspot_21.0.10_7
cd -
(可选)附带 run.bat:将 Windows 启动脚本复制到 target 后一并上传:
cp /path/to/run.bat target/run.bat
创建 Release 并上传资产:
gh release create <tag> \
target/<artifact>-<version>.jar \
target/lib.zip \
[target/run.bat] \
[target/jre-windows-x64.zip] \
--title "<标题>" \
--notes "<发布说明>"
示例(含 JRE 与 run.bat):
gh release create v1.0.0 \
target/npe_get_jobs-v1.0.0-SNAPSHOT.jar \
target/lib.zip \
target/run.bat \
target/jre-windows-x64.zip \
--title "v1.0.0" \
--notes "Release v1.0.0"
若 Release 已存在,只追加资产:
gh release upload <tag> target/<artifact>.jar target/lib.zip [target/jre-*.zip]
覆盖同名字段时加 --clobber。
| 选项 | 说明 |
|---|---|
-d, --draft | 先建为草稿,不立即发布 |
-F FILE / --notes-file FILE | 从文件读取发布说明 |
--generate-notes | 用 GitHub 自动生成说明 |
-p, --prerelease | 标记为预发布 |
-R OWNER/REPO | 指定仓库 |
target/<artifactId>-<version>.jar(Spring Boot 打包为 fat jar 时)。mvn package 且未改 finalName,版本来自 pom.xml 的 <version>。pom.xml 为不含 -SNAPSHOT 的版本(如 1.0.0),再构建并打 tag(如 v1.0.0),再执行本流程。gh。gh auth login 重新登录,确认对仓库有写权限。gh release upload <tag> ... 追加资产;否则换新 tag 或先删除/移动旧 release(在网页或 API 操作)。