Curso Bazel Introduction

  • Development

Curso Bazel Introduction

08 Horas
Visão Geral

Curso Bazel Introduction, O Bazel é uma variante de código aberto do Blaze, a poderosa ferramenta de criação interna do Google. Esta ferramenta é adequada para a sua organização? 

O Curso Bazel Introduction explora os benefícios, casos de uso e conceitos fundamentais do Bazel usando a sintaxe e a funcionalidade do Bazel baseadas em Java. A aula também apresenta os recursos avançados do Bazel, incluindo cache remoto e execução. Depois de fazer esta aula, os alunos são capazes de implementar esta ferramenta de construção versátil e poliglota em seus projetos.

Objetivo

Após realizar este Curso Bazel Introduction, você será capaz de:

 

  • Entenda os conceitos básicos do Bazel
  • Automatize tarefas típicas de um projeto Java
Pre-Requisitos
  • Experiência no nível do usuário com o conceito e as ferramentas do sistema de construção
  • Um entendimento básico da linguagem de programação Java
  • Experiência prática com estruturas e dependências Java comuns
Materiais
Inglês + Exercícios + Lab Pratico
Conteúdo Programatico

Introduction to Bazel

  1. What is Bazel?
  2. Why Should I Use It?
  3. Declarative Language
  4. Reproducibility
  5. Incremental Builds
  6. Scalability
  7. Parallel and Distributed Execution
  8. Building Polyglot Projects
  9. Extensibility

Installing the Bazel Runtime + Launcher

  1. Runtime Installation Options
  2. Using Bazelisk

Installing the Bazel Runtime

  1. Project Structure and Basic Building Blocks
  2. Project Building Blocks
  3. Project Structure
  4. Build Logic Concepts

Invoking a Target From the Command Line

  1. Executing a Target
  2. Commonly-Used Commands
  3. Building the Whole Project
  4. Output and Cache Directories

Bazel Quickstart

  1. The Lifecycle of a Bazel Build
  2. Lifecycle Phases
  3. Bazel Configuration File
  4. Programming Language Rules

Basic Automation for a Java Project

  1. Exploring Java Rules
  2. Setting up a Java Project and Building It
  3. Sample Java Project
  4. Modeling the Binary Package
  5. Standard Industry Conventions
  6. Modeling the Workspace
  7. Running the Application
  8. Running the Build from the Command Line
  9. Building a “Hello World” Java Project
  10. Inspecting the Generated Artifact
  11. Launching and running the Java Project
  12. Driving Bazel from the IDE
  13. IntelliJ Plugin
  14. VSCode Extension
  15. Eclipse Plugin
  16. Using Bazel in IntelliJ

Dependency Management and Automated Testing

  1. Modeling Fine-Grained Package Granularity and Dependencies
  2. Types of Dependencies
  3. Multi-Package Project
  4. Modeling the Library Package
  5. Package Dependencies
  6. Visibility of Targets

Declaring External Dependencies

  1. What are External Dependencies?
  2. Rules for JVM Dependencies

Declaring an External Library and Using it in the Code

  1. Executing Automated Tests
  2. Separating Test Source Code
  3. Declaring Test Dependencies
  4. Executing Tests
  5. Test Reporting

Declaring the JUnit Dependency and Executing Tests

  1. Publishing a JAR to a Maven repository
  2. Sharing JAR for consumption from a binary repository
  3. Command for publishing to the Maven Local directory
  4. Command for publishing to a binary repository
  5. Publishing a Java library to Maven Local

Outlook on Advanced Topics

  1. Overview of Extension Concepts: Macros and Rules
  2. Extension Mechanism
  3. When are Macros and Rules Executed?
  4. Starlark Build Language Overview
  5. High Level: Writing and Using a Macro
  6. High Level: Writing and Using a Genrule
  7. High Level: Writing and Using a Rule

Writing and executing a genrule

  1. Remote Caching and Execution
  2. Motivation
  3. Overview Remote Caching
  4. Overview Remote Execution

Build Stamping

  1. Workspace Status Information
  2. Generating and appending custom information with a script
  3. Including build information with an artifact
  4. Bazel Query
  5. Analyze build dependencies by an expression 
  6. Transitive closure of dependencies: deps
  7. Transitive closure of source dependencies: deps
  8. Build files for packages: buildfiles(deps)
  9. Finding reverse dependencies: rdeps

Java Toolchains

  1. Java rules provide two toolchains
  2. Discovering available Java runtime toolchains
  3. Configuring JVM and Java compiler flags
  4. Configuring toolchains in .bazelrc
  5. Defining additional toolchains
TENHO INTERESSE

Cursos Relacionados

Curso Python Programação Advanced

32 horas

Curso SAP ABAP S4hana Developer Foundation

32 horas

Curso Full Stack and React Essentials

32 Horas

Curso Node.js for JavaScript Developers

24 horas

Curso Elasticsearch for Developers

16H

Curso Elastic Stack Foundation

24 horas

Curso Apache Spark™ Foundation

8 Horas