快速开始

参见 安装部分 了解如何在你的电脑上安装 just。试着运行 just --version 以确保它被正确安装。

关于语法的概述,请查看这个 速查表

一旦 just 安装完毕并开始工作,在你的项目根目录创建一个名为 justfile 的文件,内容如下:

recipe-name:
  echo 'This is a recipe!'

# 这是一行注释
another-recipe:
  @echo 'This is another recipe.'

当你调用 just 时,它会在当前目录和父目录寻找文件 justfile,所以你可以从你项目的任何子目录中调用它。

搜索 justfile 是不分大小写的,所以任何大小写,如 JustfileJUSTFILEJuStFiLe 都可以工作。just 也会寻找名字为 .justfile 的文件,以便你打算隐藏一个 justfile

运行 just 时未传参数,则运行 justfile 中的第一个配方:

$ just
echo 'This is a recipe!'
This is a recipe!

通过一个或多个参数指定要运行的配方:

$ just another-recipe
This is another recipe.

just 在运行每条命令前都会将其打印到标准错误中,这就是为什么 echo 'This is a recipe!' 被打印出来。对于以 @ 开头的行,这将被抑制,这就是为什么 echo 'This is another recipe.' 没有被打印。

如果一个命令失败,配方就会停止运行。这里 cargo publish 只有在 cargo test 成功后才会运行:

publish:
  cargo test
  # 前面的测试通过才会执行 publish!
  cargo publish

配方可以依赖其他配方。在这里,test 配方依赖于 build 配方,所以 build 将在 test 之前运行:

build:
  cc main.c foo.c bar.c -o main

test: build
  ./test

sloc:
  @echo "`wc -l *.c` lines of code"
$ just test
cc main.c foo.c bar.c -o main
./test
testing… all tests passed!

没有依赖关系的配方将按照命令行上给出的顺序运行:

$ just build sloc
cc main.c foo.c bar.c -o main
1337 lines of code

依赖项总是先运行,即使它们被放在依赖它们的配方之后:

$ just test build
cc main.c foo.c bar.c -o main
./test
testing… all tests passed!