Android Studio Plugin for [Bazel](https://bazel.build/) Projects
================================================================

An open-sourced Android Studio plugin for Bazel projects useful to import,
develop and run Bazel projects within Android Studio.

Detailed usage instructions are available [here](https://ij.bazel.build/).

### Plugin Releases

The Android Studio with Bazel (ASwB) Plugin is uploaded to [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/9185-bazel-for-android-studio/versions/stable). Users can download it from there and manually install it or directly get it from the IDE by going to `Settings -> Plugins -> Marketplace`, and searching for `Bazel`.

**_Note:_** Starting from Android Studio 2024.2, Android Studio with Bazel plugin will be released from this project instead of https://github.com/bazelbuild/intellij/tree/google

Plugins compatible with **Stable** versions of Android Studio are released to the [Stable channel](https://plugins.jetbrains.com/plugin/9185-bazel-for-android-studio/versions/stable). The [Beta channel](https://plugins.jetbrains.com/plugin/9185-bazel-for-android-studio/versions/beta) is for  plugins compatible with **Canary** and **Beta** versions of Android Studio are released to the. Ways to install from the *Beta* channel:

* download and install them manually from the [Beta channel page](https://plugins.jetbrains.com/plugin/9185-bazel-for-android-studio/versions/beta) on JetBrains Marketplace.

* add the *Beta* channel to the IDE by navigating to `Settings -> Plugins -> Gear Icon -> Manage Plugin repositories` and adding `https://plugins.jetbrains.com/plugins/beta/9185`.

#### Compatibility with Android Studio
The version of the Android Studio with Bazel (ASwB) plugin will be the same as the build number of the Android Studio build it supports. For example, ASwB plugin version `12480590` is built for Android Studio `AI-242.23339.11.2422.12480590`.

### Build Plugin From Source
Building the ASwB plugin from this project requires some changes to the cloned repository because some of its dependencies are not publically available on AOSP.

1. Clone the repository:

    ```shell
    repo init --partial-clone -b studio-main -u https://android.googlesource.com/platform/manifest
    repo sync -c -j8
    ```

2. Checkout the branch/tag of the Android Studio release for which you want to build the plugin. List of branches/tags can be found [here](https://android.googlesource.com/platform/tools/adt/idea/+refs).
    ```shell
    repo forall -c git checkout {{release_branch}}
    ```

3. Modify `tools/adt/idea/aswb/intellij.MODULE.bazel.OSS` to download the required version of Android Studio platform.

4. Copy `tools/adt/idea/aswb/intellij.MODULE.bazel.OSS` to `tools/base/intellij-bazel/intellij.MODULE.bazel` to configure the IntelliJ module.

5. Create directory `tools/vendor/google/aswb/plugin_api` and copy `tools/adt/idea/aswb/plugin_api/BUILD.OSS` to `tools/vendor/google/aswb/plugin_api/BUILD` to set up the plugin API targets that the ASwB plugin depends on.

6. You can now build the Android Studio with Bazel plugin via
    ```shell
    bazel build //tools/adt/idea/aswb/aswb:aswb_bazel_zip --config=without_vendor --@//tools/base/intellij-bazel:intellij_platform=my_android_studio
    ```
    This will create a plugin zip file at `bazel-bin/tools/adt/idea/aswb/aswb/aswb_bazel.zip`, which can be installed directly to the IDE.


