Jrs
用 Rust 编写的类 Cargo 体验 JVM 构建工具
产品简介
Jrs 是一款用 Rust 编写的 JVM 构建工具,目标是给 Java 开发者带来类似 Cargo 那样轻量统一的构建体验。整个工程只需要一份 jrs.toml 清单和源码目录,就能完成依赖解析、编译、测试、运行与打包,不必再手写任何构建脚本。Kotlin、Scala、Groovy 代码可以与 Java 混合编译并互相调用,编译器按需从仓库拉取。官方在状态页明确说明:项目目前处于实验阶段,只构建单模块工程,实现的是对 Maven、Gradle 功能刻意收窄的子集,不提供插件系统、构建领域特定语言和多模块反应堆,投入生产前请先对照自身需求评估。
核心功能
- 依赖解析:从 Maven Central 和自有仓库拉取依赖,支持传递依赖图、最近优先仲裁、依赖排除、分类器、仅编译依赖与快照版本。
- 版本锁定:所有版本号与校验和写入可提交的 jrs.lock 文件,下载内容验证后进入共享缓存,离线模式只使用该缓存,断网也能复现构建。
- 多语言编译:Java 为主,Kotlin、Scala、Groovy 并列编译且双向互调,各编译器固定版本后在本机 JDK 上执行。
- 测试执行:支持 JUnit 5/6、JUnit 4、Spock、Kotest、ScalaTest、MUnit,可按类、标签或方法过滤,输出标准测试报告与覆盖率数据。
- 多种打包:可产出普通、便携或全量三种 jar,构建结果字节级一致;也能裁剪出精简运行时,或生成原生安装包。
- 任务系统:代码生成、校验和等杂项任务声明在清单里,以固定钩子按子进程运行,可以扩展构建但不会打乱其顺序。
- 存量迁移:一条命令从现有 Maven 或 Gradle 构建文件生成 jrs.toml 初稿,Spring Boot 工程同样适用,并附带需要人工复核的清单。
- 工程检查:提供依赖树追问、过期依赖查询、类路径查看,以及能保留原有注释的依赖增删命令。
特色优势
- 单个二进制文件即可安装,无需常驻服务与复杂配置,一条安装脚本自动完成平台适配与校验
- 锁文件加校验和的组合让构建结果可复现,字节级一致的产物便于审计与回滚
- 清单文件即全部构建逻辑,读懂一个文件就等于理解整个工程的构建方式
- 完全免费开源,采用 Apache 2.0 许可,商用包含在内:不设付费分层、不做功能阉割、不收集遥测数据
应用场景
- 中小型单模块 Java 服务的日常构建与发布
- 要求产物可复现的团队,用锁文件保证每次构建结果一致
- 从 Maven 或 Gradle 迁移到极简构建体系前的评估验证
- 同时使用 Java 与 Kotlin、Scala 的多语言项目统一构建入口
- 持续集成流水线中以单二进制快速搭建构建环境
适用人群
追求极简构建流程的 Java 开发者、厌倦构建脚本膨胀的团队、需要可复现产物的发布工程师,以及希望用一套工具统一 JVM 多语言编译的个人开发者。
出品方
由独立开发者 Piotr Wittchen 维护的开源项目,源码托管在 GitHub,官网与安装脚本自行分发。
更新动态
项目持续在 GitHub 发布页推出新版本,每个版本附带校验文件供安装脚本自动核验;工具内置自检与自更新命令,可原地升级到最新版。详细差距与设计取舍分别记录在路线图与规范文档中。
官网链接
团队信息
AI产品库
官方
由 AI 猎手自动发现
评论与建议
登录 后参与评论或提建议