Bazel은 빠르고 정확하며 확장성이 뛰어납니다. 다양한 기능을 지원하는 통합 테스트가 포함된 빌드 도구 languages, repositories, 업계를 선도하는 생태계의 플랫폼입니다.
Bazel은 빠릅니다
Bazel은 각 빌드 명령어에 필요한 입력 파일을 정확하게 알고 있으므로 재실행하여 불필요한 작업을 줄일 수 있습니다. 확인할 수 있습니다 빌드 커맨드를 Google Cloud 콘솔 내에서 최대한 많은 병렬 처리로 원격 빌드 노드에서 실행할 수 있습니다. 빌드 구조가 수천 개의 빌드 또는 테스트 명령을 동시에 실행할 수 있습니다.
이는 메모리, 디스크 및 배포할 수 있습니다(있는 경우). Google에서는 정기적으로 캐시 적중률을 달성하여 북쪽으로 99%가 됩니다.
Bazel이 맞습니다
Bazel은 오직 자체 바이너리에서만 바이너리를 빌드하도록 합니다. 소스 코드 개별 샌드박스 및 Bazel 트랙에서 실행되는 Bazel 작업 빌드의 모든 입력 파일과 항상 재실행하는 빌드만 실행할 수 있습니다 이렇게 하면 바이너리를 최신으로 유지할 수 있어 같은 소스 코드가 항상 동일한 바이너리를 발생시킴, 비트 하나씩 살펴보겠습니다.
끝없는 make clean
호출과 유령 버그 사냥에 감사의 마음을 전하세요.
빌드되지 않은 소스 코드에서 실제로 해결된 것입니다.
확장 가능한 Bazel
자체 규칙과 매크로를 작성하여 Bazel의 모든 기능을 활용하여 Bazel을 맞춤화할 수 있습니다.
Bazel 규칙은 Starlark로 작성되어 있습니다. Python의 하위 집합인 자사 프로그래밍 언어를 빌드할 수 있습니다 스타라크는 대부분의 개발자가 액세스할 수 있는 규칙 작성 및 사용할 수 있게 될 것입니다
통합 테스트
Bazel의 통합 테스트 실행기 원격 실행을 사용하여 재실행해야 하는 테스트만 알고 실행함 (사용 가능한 경우)를 사용하여 동시에 실행할 수 있습니다. 리모컨을 사용하여 플레이크 조기 감지 테스트를 수천 번 빠르게 실행할 수 있습니다.
Bazel은 테스트 결과를 중앙 서버에 업로드할 수 있는 시설을 제공합니다. 테스트 결과를 효율적으로 전달할 수 있습니다. 개별 개발자가 만들 수 있습니다
다양한 언어 지원
Bazel은 C++, Java, Kotlin, Python, Go, Rust가 지원됩니다. 여러 개의 바이너리를 빌드할 수 있습니다 (예: 백엔드, 웹 UI, 모바일 앱)를 동일한 Bazel 호출에서 한 가지 언어의 관용적인 빌드 도구로 제한됩니다.
다중 저장소 지원
Bazel은 다음과 같이 여러 위치에서 소스 코드를 수집할 수 있습니다. 종속 항목을 공급업체로 제공할 필요는 없지만 (가능합니다) 대신 Bazel을 소스 코드 또는 사전 빌드된 아티팩트 (예: Git 저장소 또는 Maven Central)에서 처리되며 나머지는 자동으로 처리됩니다.
멀티 플랫폼 지원
Bazel은 Linux, Linux, Windows 운영 체제, Linux 등 여러 플랫폼을 위한 프로젝트를 macOS, Windows, Android를 지원합니다. 또한 강력한 크로스 컴파일 기능을 사용하여 단일 컴파일을 위한 코드를 빌드할 수 있습니다. 다른 플랫폼에서 빌드를 실행할 수 있습니다
광범위한 생태계
업계 리더는 Bazel을 활용하여 개발자 커뮤니티입니다. 도구 및 서비스 찾기 및 문서(컨설팅 및 SaaS 서비스 포함) 사용할 수 있습니다 프로그래밍 언어 지원과 같은 확장 프로그램을 오픈소스 소프트웨어 저장소를 참조하세요.