编程笔记

Just 又一个自动化工具

2025-03-13  本文已影响0人  老瓦在霸都

Just 是什么

Just 就是一个命令执行工具,旨在简化项目中特定命令的管理和执行。 通过在名为 justfile 的文件中使用类似 make 的简单语法定义这些被称为“配方”的命令,您可以简化重复性任务,并在项目中保持一致性。

主要特点:

Just 示例

  1. 基本配方(Recipe):

    定义一个简单的命令来清理构建产物:

    # justfile
    clean:
        rm -rf build/
    

在终端中运行 just clean 将执行 rm -rf build/ 命令,删除 build 目录。

  1. 带变量的配方(Recipe):

    使用变量来指定编译器标志:

    # justfile
    CFLAGS := "-Wall -O2"
    
    build:
        gcc {{CFLAGS}} main.c -o main
    

在此,CFLAGS 被定义为所需的编译器标志。build 配方在编译 main.c 时使用这些标志。

  1. 带命令行参数的配方(Recipe):

    在配方中处理命令行参数:

    # justfile
    greet name:
        echo "Hello, {{name}}!"
    

执行 just greet Alice 将输出:

Hello, Alice!
  1. 跨平台配方(Recipe):

    定义一个可在不同操作系统上运行的配方:

    # justfile
    python_dir := if os_family() == "windows" { "./.venv/Scripts" } else { "./.venv/bin" }
    python := python_dir + if os_family() == "windows" { "/python.exe" } else { "/python3" }
    
    bootstrap:
        if test ! -e .venv; then {{python}} -m venv .venv; fi
        {{python}} -m pip install --upgrade pip
    

此配方以跨平台的方式设置 Python 虚拟环境,处理 Windows 和类 Unix 系统之间的差异。

Just 与 Make 相比有什么优劣

Just 和 Make 确实有很多相似之处,但 Just 主要针对更现代、更简洁、更易用的任务管理需求,适用于各种项目类型,而不仅仅是编译代码。以下是 Just 相比 Make 的几个优势:

Just 的优势

1. 语法简单,易于上手

2. 不限定用途,不仅仅是编译

3. 无需 TAB,避免 Makefile 的常见坑

4. 支持命令行参数

5. 支持变量与字符串插值

6. 支持跨平台

7. 支持颜色输出、错误处理


Just 的不足


结论

如果你在编译 C/C++ 代码,Make 仍然是首选。
但如果你需要一个简单、易用、适用于各种任务的自动化工具,Just 可能是更好的选择!

上一篇 下一篇

猜你喜欢

热点阅读