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
Requirements
- Knowledge and experience with the build system concept
- Basic understanding of the Java programming language
Audience
- Software developers
Testimonials
Comprehensive knowledge of the instructor and his approach towards coding
Movella
Provided me with tools how to write better code.
Movella
The teacher addressed many relevant topics for clean coding with practical examples.
Ben van Oeveren - Movella
The atmosphere was very nice, much more relaxed conversation than classic teaching style. Also, several of the techniques, especially those I doubt would hold up or be worth it (effort-gain-wise) under "real world" work conditions (as mentioned above) made me reflect on my coding style, and why I do or don't do some things (both on topics presented int he course and related ones), which I don't do that often (needed the impetus) but is really useful, even if I come to the conclusion that my style already suits my needs well.
Greentube Internet Entertainment Solutions GmbH
I really liked that there were a lot of practical exercises in which you could put the learned immediately into action.