⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 网络 「网络」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

发版这件事,说简单也简单——打个 tag、跑个构建、传个包。说复杂也真复杂——Changelog 要生成、产物要签名、GitHub Release 要创建、Homebrew 要更新、Docker 镜像要推送、通知要发出去…… 手动搞一轮下来,半天没了,还容易出错。

JReleaser 就是干掉这种重复劳动的工具。 它是一个专为 Java(也支持非 Java)项目设计的发布自动化工具,一条命令搞定从打包到分发的全流程。

它能帮你做什么?

直说重点,JReleaser 覆盖了发布流程中最烦人的部分:

  • 自动生成 Changelog:基于 Git 提交历史,按类型分类,格式清晰
  • 创建 GitHub / GitLab / Gitea Release:打 tag、上传产物、写发布说明,一步到位
  • 分发到包管理器:Homebrew、Scoop、Snap、Chocolatey、Flatpak、SDKMAN!……全都支持
  • 签名和校验:GPG 签名 + Checksum 生成,开箱即用
  • Docker 镜像发布:构建并推送到 Docker Hub 或其他 Registry
  • 通知推送:发布完成后自动通过 Slack、Discord、邮件等渠道通知团队

一句话概括:你只管写代码,JReleaser 帮你把”发布”从头到尾包圆了。

安装方式

JReleaser 提供了 CLI 独立工具和构建工具插件两种使用方式,选适合你项目的就行。

方式一:CLI 独立安装(推荐尝鲜)

不想动项目配置,先体验一下?直接装 CLI 最省事。

macOS 用户首选 Homebrew:

brew install jreleaser/tap/jreleaser

SDKMAN!(跨平台通用,Java 开发者的老朋友):

sdk install jreleaser

JBang(免安装 Java 也能跑):

# 稳定版
jbang jreleaser@jreleaser <command> [<args>]

# 尝鲜版
jbang jreleaser-snapshot@jreleaser <command> [<args>]

Windows 用户用 Scoop 或 Chocolatey:

# Scoop(需要 Java 8)
scoop bucket add jreleaser https://github.com/jreleaser/scoop-jreleaser.git
scoop install jreleaser

# Chocolatey(需要 Java 8)
choco install jreleaser

Linux 用户还有这些选择:

# Fedora COPR
dnf install dnf-plugins-core
dnf copr enable aalmiray/jreleaser
dnf install jreleaser

# Snap
snap install jreleaser

# Flatpak
flatpak install --user flathub org.jreleaser.cli
flatpak run org.jreleaser.cli

Curl 手动下载(需要 Java 11):

curl -sL https://git.io/get-jreleaser > get_jreleaser.java
java get_jreleaser.java <version>
java -jar jreleaser-cli.jar <command> [<args>]

另外还有 Macports、AppImage 等方式,不太常用就不展开了。值得一提的是 jreleaser-standalone 包自带 Java 运行时,连 JDK 都不用装就能跑。

方式二:Docker(CI/CD 场景优选)

不想装任何东西?Docker 镜像直接用:

docker run -it --rm -v $(pwd):/workspace \
jreleaser/<image>:<tag> <command> [<args>]

镜像可选 jreleaser-slim 或 jreleaser-alpine。jreleaser 命令会自动在 /workspace 目录内执行。

注意把发布需要的环境变量映射进去,比如 JRELEASER_PROJECT_VERSION、JRELEASER_GITHUB_TOKEN 等。在 CI 流水线里用这种方式最干净,不污染构建环境。

方式三:Maven 插件(Java 项目标配)

大多数 Java 项目用这种方式最自然,直接在 pom.xml 里加插件:

<plugin>
<groupId>org.jreleaser</groupId>
<artifactId>jreleaser-maven-plugin</artifactId>
<version>1.1.0</version>
</plugin>

然后通过 mvn jreleaser:release 一键发布。和现有构建流程无缝衔接,不用额外装工具。

方式四:Gradle 插件

Gradle 用户同理,在 build.gradle 或 settings.gradle 中加入:

plugins {
id 'org.jreleaser' version '1.1.0'
}

方式五:Ant(如果你还在用的话……)

下载 jreleaser-ant-tasks ZIP 包,解压后将 JAR 文件放入 lib 目录,然后在 build.xml 中配置:

<path id="jreleaser.classpath">
<fileset dir="lib">
<include name="jreleaser-ant-tasks-1.1.0/*.jar"/>
</fileset>
</path>

<import>
<javaresource name="org/jreleaser/ant/targets.xml"
classpathref="jreleaser.classpath"/>
</import>

选哪种方式?

场景 推荐方式
快速体验 / 非 Java 项目 CLI(Homebrew / SDKMAN!)
CI/CD 流水线 Docker 镜像
Maven 项目 Maven 插件
Gradle 项目 Gradle 插件

个人建议:如果你是 Java 开发者,直接用对应的构建插件最省心——配置跟着项目走,团队成员不需要额外安装任何东西。如果是跨语言项目或者想在 CI 里统一管理,Docker 方式更干净。

说到底,JReleaser 解决的核心问题就一个:把发布流程从”人肉操作”变成”一条命令”。 项目越多、发布越频繁,它省下来的时间就越可观。

文章目录
  1. 1. 它能帮你做什么?
  2. 2. 安装方式
    1. 2.1. 方式一:CLI 独立安装(推荐尝鲜)
    2. 2.2. 方式二:Docker(CI/CD 场景优选)
    3. 2.3. 方式三:Maven 插件(Java 项目标配)
    4. 2.4. 方式四:Gradle 插件
    5. 2.5. 方式五:Ant(如果你还在用的话……)
  3. 3. 选哪种方式?