Overview
Bazel is an open-source build and testing tool developed by Google. It provides tools that automate the execution of build and testing tasks.
This instructor-led, live training (online or onsite) is aimed at developers who wish to learn how Bazel works in automating a software build and test workflow.
By the end of this training, participants will be able to:
- Understand the basic concepts of Bazel and learn how it works.
- Learn how to use Bazel in building and testing.
- Use Bazel in executing build and testing automation.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Requirements
- Knowledge and experience with the build system concept
- Basic understanding of the Java programming language
Audience
- Software developers
Course Outline
Introduction
- Overview of Bazel
- Understanding the Bazel architecture
Getting Started
- Installing the Bazel runtime and launcher
- Understanding the Bazel UI
Understanding the Project Structure and Basic Building Blocks
- Project building block
- Project structure
- Concepts of a build logic
Invoking a Target From the Command Line
- Executing a target
- Commonly-used commands
- Output and cache directories
Understanding the Bazel Build Lifecycle
- Phases of the Bazel lifecycle
- Configuration file
- Programming language rules
Using Bazel Basic Automation For Java
- Setting up a Java project
- Building a Java project
- Running the build from the command line
- Inspecting the generated artifact
- Deploying the Java project
- Driving Bazel from the IDE
- Using Bazel in IntelliJ
Bazel Dependency Management
- Modeling fine-grained package granularity and dependencies
- Declaring external dependencies
- Declaring an external library and using it in a code
- Declaring the JUnit dependency
- Publishing a JAR to a Maven repository
- Publishing a Java library to local Maven
Testing Automation
- Performing automated tests
- Executing JUnit tests
Advanced Bazel
- Extension concepts
- Writing and executing a genrule
- Remote caching and execution
- Build stamping
- Bazel query
- Java toolchains
Troubleshooting
Summary and Next Steps