配方属性

配方可以通过添加属性注释来改变其行为。

名称描述
[no-cd]1.9.0在执行配方之前不要改变目录。
[no-exit-message]1.7.0如果配方执行失败,不要打印错误信息。
[linux]1.8.0在Linux上启用配方。
[macos]1.8.0在MacOS上启用配方。
[unix]1.8.0在Unixes上启用配方。
[windows]1.8.0在Windows上启用配方。
[private]1.10.0参见 私有配方.

启用和禁用配方1.8.0

[linux], [macos], [unix][windows] 属性是配置属性。默认情况下,配方总是被启用。一个带有一个或多个配置属性的配方只有在其中一个或多个配置处于激活状态时才会被启用。

这可以用来编写因运行的操作系统不同,其行为也不同的 justfile。以下 justfile 中的 run 配方将编译和运行 main.c,并且根据操作系统的不同而使用不同的C编译器,同时使用正确的二进制产物名称:

[unix]
run:
  cc main.c
  ./a.out

[windows]
run:
  cl main.c
  main.exe

禁用变更目录1.9.0

just 通常在执行配方时将当前目录设置为包含 justfile 的目录,你可以通过 [no-cd] 属性来禁用此行为。这可以用来创建使用调用目录相对路径或者对当前目录进行操作的配方。

例如这个 commit 配方:

[no-cd]
commit file:
  git add {{file}}
  git commit

可以使用相对于当前目录的路径,因为 [no-cd] 可以防止 just 在执行 commit 配方时改变当前目录。