bld:纯 Java 构建工具,适合不喜欢处理构建工具的开发人员。
bld是一个新的构建系统,让您用纯 Java 编写构建逻辑。
bld创建它是因为我们对构建工具并不感兴趣。我们使用它们是因为我们必须这样做,但我们更愿意继续编写真正有用的代码。
bld设计时考虑了以下原则:
- 如果没有你的指令,任务就不会发生
- 没有自动魔法行为,任务行为是明确的和 API 定义的
- 自己管理库是可以的,也可以自动化,或者混合搭配
- 构建逻辑用 Java 编写,具有 Java 的所有优点
- 以 Java 为中心的常见操作的标准任务集合
- bld分布在一个单独的 jar 中,如果你有这个 jar,你就有了构建系统
专为现代 Java 设计
bld 依赖于 Java 17,并利用了此 Java 版本提供的许多功能。得益于现代语言结构,您的 Java 构建逻辑最终看起来非常简洁,任何 IDE 都可以轻松阅读和理解。您会自动获得对自动完成和 javadoc 文档的支持,并且当单个文件不够用时,您可以将构建逻辑拆分为多个文件和类。
以下是使用 JUnit 5 进行测试的 Java 应用程序的完整 bld 文件。无需任何其他操作即可运行、测试和分发它:
package com.example; |
bld 适合哪里?
从很高的层次来看,构建工具可以按矩阵形式组织:
- 你的工具要么是声明式的,要么是代码式的
- 你的工具要么首先描述一个计划,要么立即执行一个计划
区别:
- Maven:声明式描述
- Gradle:代码描述
- bld:代码即时
使用与您的应用程序相同的语言(Java)编写构建逻辑,可以大大减少认知负荷,并且无需在脑海中构建描述的计划即可立即采取行动,从而更容易推理您的构建。
从 2.0 版本开始,bld 附带了自己的IntelliJ IDEA 插件:
- 检测 bld 项目并找到其主要 Java 类
- 快速打开和编辑 bld 项目的主要 Java 类和包装器属性
- 在侧面板中列出 bld 项目中的所有命令
- 按选择顺序执行一个或多个命令
- 重新加载 bld 项目中的命令
- 终止当前正在运行的 bld 命令
- bld 控制台面板,用于输出带有源代码超链接的命令
- 显示 bld 依赖关系树
- 切换到离线或在线模式运行 bld
- 在执行 bld 命令之前自动保存所有打开的文件
- 便捷的 bld 一键缓存失效
- 设置 bld 命令在 IDEA 编译之前或之后运行
- 创建自定义 bld 命令运行配置
- 为 bld 命令分配键盘快捷键
通过 Homebrew、SDKMAN!、JBang 等安装 bld...