Bazel 소개

문제 신고 소스 보기 1박 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Bazel은 Make, Maven, Gradle과 비슷한 오픈소스 빌드 및 테스트 도구입니다. 사람이 읽을 수 있는 상위 수준의 빌드 언어를 사용합니다. Bazel은 다양한 언어를 지원하고 여러 플랫폼에 대한 출력을 빌드하는 데 사용됩니다. Bazel 지원 대규모 코드베이스를 사용하고 사용자 수가 많을 수 있습니다.

이점

Bazel은 다음과 같은 이점을 제공합니다.

  • 대략적인 빌드 언어. Bazel은 추상적이고 사람이 읽을 수 있는 프로젝트의 빌드 속성을 의미론적 수준입니다. 다른 도구와 달리 Bazel은 개념 바이너리, 스크립트, 데이터 세트로 구성된 암호화가 적용되어 있어 컴파일러 및 컨테이너와 같은 도구에 대한 개별 호출을 작성하는 것은 사용할 수 있습니다.

  • Bazel은 빠르고 안정적입니다. Bazel은 이전에 완료된 모든 작업을 캐시하고 파일 콘텐츠와 빌드 명령어의 변경사항을 모두 추적합니다. 이렇게 하면, Bazel 다시 빌드해야 할 때를 알고 그것만 재구축합니다. 추가 정보 빌드 속도를 높이기 위해서는 두 가지 방법이 있습니다

  • Bazel은 멀티 플랫폼입니다 Bazel은 Linux, macOS, Windows에서 실행됩니다. 바젤 다음을 비롯한 여러 플랫폼을 위한 바이너리 및 배포 가능한 패키지를 빌드할 수 있습니다. 모두 동일한 프로젝트에서 생성할 수 있습니다

  • Bazel이 확장합니다 Bazel은 10만 개 이상의 앱으로 빌드를 처리하면서 민첩성을 유지하고 소스 파일 수십만 곳의 다양한 저장소 및 사용자층과 있습니다.

  • Bazel은 확장성이 있습니다. 많은 언어가 Bazel을 확장하여 다른 언어나 프레임워크입니다

Bazel 사용

Bazel을 사용하여 프로젝트를 빌드하거나 테스트하려면 일반적으로 다음을 수행합니다.

  1. Bazel을 설정합니다. Bazel을 다운로드하여 설치합니다.

  2. 프로젝트 작업공간을 설정합니다. Bazel이 빌드 입력과 BUILD 파일을 찾는 디렉터리와 - 빌드 출력을 저장합니다

  3. Bazel에 빌드할 항목과 빌드 방법을 알려주는 BUILD 파일을 작성합니다. 구축할 수 있습니다.

    다음을 사용하여 빌드 대상을 선언하여 BUILD 파일을 작성합니다. Starlark: 도메인 전용 언어 (예시 보기 여기를 참조하세요.)

    빌드 대상은 Bazel이 빌드할 입력 아티팩트 집합을 지정하며 Bazel이 이를 빌드하는 데 사용할 빌드 규칙 및 고유한 구성 파일을 보여 줍니다.

    빌드 규칙은 Bazel이 사용할 빌드 도구(예: 컴파일러 및 링커 및 해당 구성이 포함됩니다. Bazel에는 다양한 빌드 규칙이 적용됩니다. 지원되는 언어로 가장 일반적인 아티팩트 유형을 지원되는 플랫폼입니다

  4. 명령줄에서 Bazel을 실행합니다. 바젤 작업공간 내에 출력을 배치합니다.

빌드 외에도 Bazel을 사용하여 빌드를 tests하고 쿼리합니다. 코드의 종속 항목을 추적할 수 있습니다.

Bazel 빌드 프로세스

빌드 또는 테스트를 실행할 때 Bazel은 다음을 수행합니다.

  1. 타겟과 관련된 BUILD 파일을 로드합니다.

  2. 입력과 입력 값을 분석합니다. depends: 지정된 빌드를 적용합니다. 규칙에 따라 작업을 수행하고 작업을 그래프로 확인할 수 있습니다.

  3. 최종 빌드 출력까지 입력에서 빌드 작업을 실행합니다. 확인할 수 있습니다

이전의 모든 빌드 작업이 캐시되므로 Bazel은 캐시된 문서를 찾아서 재사용할 수 있습니다. 변경하고 변경된 내용만 재빌드하거나 다시 테스트할 수 있습니다. 추가적인 시정 조치 빌드와 테스트를 실행하도록 Bazel을 설정하여 밀폐하여 편향을 최소화합니다. 재현성 극대화를 지원합니다

작업 그래프

작업 그래프는 빌드 아티팩트, 빌드 아티팩트 간의 관계, Bazel이 수행할 빌드 작업을 정의합니다 이 그래프 덕분에 Bazel은 추적할 항목 빌드 또는 테스트 명령과 같은 작업에 대한 변경 사항 및 이전에 어떤 빌드 작업이 수행되었는지 알 수 있습니다. 또한 그래프를 통해 다음 작업을 수행할 수 있습니다. 코드에서 쉽게 종속 항목을 추적할 수 있습니다.

시작하기 튜토리얼

Bazel을 시작하려면 시작하기를 참조하거나 Bazel 튜토리얼로 바로 이동하세요.