Noções básicas de criação

Reportar um problema Ver código-fonte Nightly · 7.4 . 7,3 · 7.2 · 7,1 · 7,0 · 6,5

Um sistema de build é uma das partes mais importantes de uma organização de engenharia porque cada desenvolvedor interage com ele potencialmente dezenas ou centenas de vezes por dia. Um sistema de build com todos os recursos é necessário para permitir a produtividade do desenvolvedor à medida que a organização cresce. Para desenvolvedores individuais, é simples compilar o código, e um sistema de build pode parecer excessivo. Mas, em uma escala maior, ter um sistema de build ajuda a gerenciar dependências compartilhadas, como confiar em outra parte da base de código ou um recurso externo, como uma biblioteca. Os sistemas de build garantem que você tem tudo o que você precisa para compilar o código antes de ele começar a ser compilado. Os sistemas de build também aumentam a velocidade quando configurados para ajudar os engenheiros a compartilhar recursos e resultados.

Esta seção aborda um pouco da história e os conceitos básicos da criação e do desenvolvimento de sistemas, incluindo as decisões de design que levaram à criação do Bazel. Se você já conhece sistemas de build baseados em artefatos, como Bazel, Buck e Pants, pule esta seção, mas ela é uma visão geral útil para entender por que esses sistemas são excelentes para permitir a escala.

  • Por que um sistema de build?

    Se você nunca usou um sistema de build, comece aqui. Nesta página, explicamos por que você deve usar um sistema de build e por que compiladores e scripts de build não são a melhor escolha quando sua organização começa a escalonar além de alguns poucos desenvolvedores de aplicativos.

  • Sistemas de build baseados em tarefas

    Esta página discute sistemas de build baseados em tarefas (como Make, Maven e Gradle) e alguns dos desafios deles.

  • Sistemas de build baseados em artefatos

    Esta página discute sistemas de build baseados em artefatos em resposta à dificuldade pontos de sistemas de build baseados em tarefas.

  • Builds distribuídos

    Esta página aborda builds distribuídos ou que são executados fora do na máquina local. Isso exige uma infraestrutura mais robusta para compartilhar recursos e resultados de build (e é onde a verdadeira magia acontece!)

  • Gerenciamento de dependências

    Esta página aborda algumas complicações de dependências em grande escala e estratégias para combater essas complicações.