How to manage module dependencies in IntelliJ codebase. Use when adding or modifying module dependencies in iml files.
This document describes how to manage module dependencies when working with IntelliJ IDEA codebase.
The repository uses a hybrid build system:
build/jpsModelToBazel.cmd after changing .iml filesTo manually run the converter that generates Bazel BUILD files from .iml files:
./build/jpsModelToBazel.cmd
This is useful when:
BUILD.bazel files have auto-generated sections marked with comments:
### auto-generated section `build module.name` start
... generated content ...
### auto-generated section `build module.name` end
### auto-generated section `test module.name` start
... generated content ...
### auto-generated section `test module.name` end
Key rules:
To prevent auto-generation of a section (so you can provide custom content):
### skip generation section `test module.name`
Example - Custom test target with preserved content:
load("@community//build:tests-options.bzl", "jps_test")
# Custom test target (before auto-generated sections)
jps_test(
name = "my-tests_test",
runtime_deps = [
":my-tests_test_lib",
"//:main_test_lib",
],
)
### skip generation section `test my.module.name`
### auto-generated section `build my.module.name` start
... (let generator handle the build section)
⚠️ DO NOT manually edit .iml files via JetBrains MCP - The IDE's automatic converter runs concurrently and can interfere with edits.
When you need to fix missing dependencies:
Edit tool (not mcp__jetbrains__replace_text_in_file) for .iml files./bazel-build-all.cmd