Jrs

用 Rust 编写的类 Cargo 体验 JVM 构建工具

AI编程开发 部分免费

产品简介

Jrs 是一款用 Rust 编写的 JVM 构建工具,目标是给 Java 开发者带来类似 Cargo 那样轻量统一的构建体验。整个工程只需要一份 jrs.toml 清单和源码目录,就能完成依赖解析、编译、测试、运行与打包,不必再手写任何构建脚本。Kotlin、Scala、Groovy 代码可以与 Java 混合编译并互相调用,编译器按需从仓库拉取。官方在状态页明确说明:项目目前处于实验阶段,只构建单模块工程,实现的是对 Maven、Gradle 功能刻意收窄的子集,不提供插件系统、构建领域特定语言和多模块反应堆,投入生产前请先对照自身需求评估。

核心功能

  1. 依赖解析:从 Maven Central 和自有仓库拉取依赖,支持传递依赖图、最近优先仲裁、依赖排除、分类器、仅编译依赖与快照版本。
  2. 版本锁定:所有版本号与校验和写入可提交的 jrs.lock 文件,下载内容验证后进入共享缓存,离线模式只使用该缓存,断网也能复现构建。
  3. 多语言编译:Java 为主,Kotlin、Scala、Groovy 并列编译且双向互调,各编译器固定版本后在本机 JDK 上执行。
  4. 测试执行:支持 JUnit 5/6、JUnit 4、Spock、Kotest、ScalaTest、MUnit,可按类、标签或方法过滤,输出标准测试报告与覆盖率数据。
  5. 多种打包:可产出普通、便携或全量三种 jar,构建结果字节级一致;也能裁剪出精简运行时,或生成原生安装包。
  6. 任务系统:代码生成、校验和等杂项任务声明在清单里,以固定钩子按子进程运行,可以扩展构建但不会打乱其顺序。
  7. 存量迁移:一条命令从现有 Maven 或 Gradle 构建文件生成 jrs.toml 初稿,Spring Boot 工程同样适用,并附带需要人工复核的清单。
  8. 工程检查:提供依赖树追问、过期依赖查询、类路径查看,以及能保留原有注释的依赖增删命令。

特色优势

  • 单个二进制文件即可安装,无需常驻服务与复杂配置,一条安装脚本自动完成平台适配与校验
  • 锁文件加校验和的组合让构建结果可复现,字节级一致的产物便于审计与回滚
  • 清单文件即全部构建逻辑,读懂一个文件就等于理解整个工程的构建方式
  • 完全免费开源,采用 Apache 2.0 许可,商用包含在内:不设付费分层、不做功能阉割、不收集遥测数据

应用场景

  • 中小型单模块 Java 服务的日常构建与发布
  • 要求产物可复现的团队,用锁文件保证每次构建结果一致
  • 从 Maven 或 Gradle 迁移到极简构建体系前的评估验证
  • 同时使用 Java 与 Kotlin、Scala 的多语言项目统一构建入口
  • 持续集成流水线中以单二进制快速搭建构建环境

适用人群

追求极简构建流程的 Java 开发者、厌倦构建脚本膨胀的团队、需要可复现产物的发布工程师,以及希望用一套工具统一 JVM 多语言编译的个人开发者。

出品方

由独立开发者 Piotr Wittchen 维护的开源项目,源码托管在 GitHub,官网与安装脚本自行分发。

更新动态

项目持续在 GitHub 发布页推出新版本,每个版本附带校验文件供安装脚本自动核验;工具内置自检与自更新命令,可原地升级到最新版。详细差距与设计取舍分别记录在路线图与规范文档中。

官网链接

https://getjrs.dev

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论