Skip to content

Latest commit

 

History

History

basic_gazelle

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Basic Gazelle

Gazelle is a tool that generates and updates Bazel build files. You can use it to generate build files when migrating to Bazel, to maintain existing build files, and to import external Go modules that have not been migrated to Bazel.

This example shows how to use Gazelle to generate build files for a small Go program with an external dependency.

To understand how this project works, read these files:

  • MODULE.bazel: declares dependencies on Bazel modules, including rules_go and Gazelle.
  • go.mod: declares dependencies on Go modules. Maintained outside of Bazel with normal Go commands like go mod tidy.
  • BUILD.bazel: contains some boilerplate for running Gazelle, as well as targets generated by Gazelle.

To update generated build files, run the command below. This should be done after you add, remove, or rename source files or when you change imports.

bazel run //:gazelle

For example, rename printlinks.go to print_links.go, run Gazelle, and observe the change in BUILD.bazel.

To add a new external dependency:

  1. Import the external package from any .go file.
  2. Run bazel run @rules_go//go -- mod tidy. This command runs go mod tidy to update go.mod using the toolchain downloaded by rules_go. This command also runs bazel mod tidy to update MODULE.bazel .
  3. Run bazel run //:gazelle again to update dependencies in BUILD.bazel files.