bld 版本 2.0 现已推出,包括 IntelliJ IDEA 插件!


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;

import rife.bld.Project;
import java.util.List;
import static rife.bld.dependencies.Repository.*;
import static rife.bld.dependencies.Scope.*;

public class MyappBuild extends Project {
    public MyappBuild() {
        pkg = "com.example";
        name =
"Myapp";
        mainClass =
"com.example.MyappMain";
        version = version(0,1,0);

        downloadSources = true;
        repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
        scope(test)
            .include(dependency(
"org.junit.jupiter",
                               
"junit-jupiter",
                                version(5,10,3)))
            .include(dependency(
"org.junit.platform",
                               
"junit-platform-console-standalone",
                                version(1,10,3)));
    }

    public static void main(String[] args) {
        new MyappBuild().start(args);
    }
}

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...