Use labels to reference targets

Report an issue View source Nightly · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

In BUILD files and at the command line, Bazel uses labels to reference targets - for example, //main:hello-world or //lib:hello-time. Their syntax is:

//path/to/package:target-name

If the target is a rule target, then path/to/package is the path from the workspace root (the directory containing the MODULE.bazel file) to the directory containing the BUILD file, and target-name is what you named the target in the BUILD file (the name attribute). If the target is a file target, then path/to/package is the path to the root of the package, and target-name is the name of the target file, including its full path relative to the root of the package (the directory containing the package's BUILD file).

When referencing targets at the repository root, the package path is empty, just use //:target-name. When referencing targets within the same BUILD file, you can even skip the // workspace root identifier and just use :target-name.