Bazel과 IDE 통합

문제 신고 소스 보기 Nightly · 8.0 · 7.4 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

이 페이지에서는 Bazel을 IntelliJ, Android 스튜디오, CLion과 같은 IDE와 통합하는 방법 (또는 자체 IDE 플러그인을 빌드하는 방법)을 설명합니다. 설치 및 플러그인 세부정보 링크도 포함되어 있습니다.

IDE는 IDE 내에서 Bazel 실행을 허용하는 기능부터 BUILD 파일의 구문 강조 표시와 같은 Bazel 구조 인식에 이르기까지 다양한 방식으로 Bazel과 통합됩니다.

Bazel용 편집기 또는 IDE 플러그인을 개발하고 싶다면 Bazel Slack에서 #ide 채널에 가입하거나 GitHub에서 토론을 시작하세요.

IDE 및 편집기

IntelliJ, Android 스튜디오, CLion

IntelliJ, Android 스튜디오, CLion용 공식 플러그인입니다. 이 플러그인은 오픈소스입니다.

Google에서 내부적으로 사용하는 플러그인의 오픈소스 버전입니다.

기능:

  • 언어별 플러그인과의 상호 운용성 지원되는 언어로는 Java, Scala, Python이 있습니다.
  • Bazel 타겟의 시맨틱 인식을 사용하여 BUILD 파일을 IDE로 가져옵니다.
  • Bazel의 BUILD.bzl 파일에 사용되는 언어인 Starlark를 IDE에서 인식하도록 설정
  • IDE에서 직접 바이너리 빌드, 테스트, 실행
  • 바이너리 디버깅 및 실행을 위한 구성을 만듭니다.

설치하려면 IDE의 플러그인 브라우저로 이동하여 Bazel를 검색합니다.

이전 버전을 수동으로 설치하려면 JetBrains의 플러그인 저장소에서 ZIP 파일을 다운로드하고 IDE의 플러그인 브라우저에서 ZIP 파일을 설치합니다.

Xcode

rules_xcodeproj, Tulsi, XCHammer는 Bazel BUILD 파일에서 Xcode 프로젝트를 생성합니다.

Visual Studio Code

VS Code용 공식 플러그인입니다.

기능:

  • Bazel 빌드 타겟 트리
  • 빌드 중 .bzl 파일용 Starlark 디버거 (중단점 설정, 코드 단계별 실행, 변수 검사 등)

Visual Studio 마켓플레이스에서 플러그인을 찾습니다. 이 플러그인은 오픈소스입니다.

참고: 소스 코드 자동 완성

Atom

Atom 패키지 관리자에서 language-bazel 패키지를 찾습니다.

참고: 소스 코드 자동 완성

Vim

GitHub의 bazelbuild/vim-bazel 참고

참고: 소스 코드 자동 완성

Emacs

GitHub의 bazelbuild/bazel-emacs-mode 참고

참고: 소스 코드 자동 완성

Visual Studio

Lavender는 빌드에 Bazel을 사용하는 Visual Studio 프로젝트를 생성하기 위한 실험용 프로젝트입니다.

Eclipse

Bazel Eclipse Feature는 Bazel 패키지를 Eclipse 프로젝트로 Eclipse 작업공간에 가져오기 위한 플러그인 모음입니다.

소스 코드 자동 완성

C 언어 계열 (C++, C, Objective-C, Objective-C++)

hedronvision/bazel-compile-commands-extractor를 사용하면 VSCode, Vim, Emacs, Atom, Sublime을 비롯한 다양한 확장 가능한 편집기에서 자동 완성, 스마트 탐색, 빠른 수정 등을 사용할 수 있습니다. 이를 통해 clangd 및 ccls와 같은 언어 서버와 기타 유형의 도구가 다른 플랫폼의 교차 컴파일을 구성하는 방법을 비롯하여 ccobjc 코드가 컴파일되는 방식에 대한 Bazel의 이해를 활용할 수 있습니다.

자바

georgewfraser/java-language-server - Bazel 빌드 프로젝트를 지원하는 Java Language Server (LSP)

파일 변경 시 빌드 및 테스트 자동 실행

Bazel 워처는 소스 파일이 변경될 때 Bazel 타겟을 빌드하는 도구입니다.

자체 IDE 플러그인 빌드

IDE 플러그인을 빌드할 때 사용할 Bazel API에 대해 자세히 알아보려면 IDE 지원 블로그 게시물을 참고하세요.