尧图精选

IntelliJ IDEA 社区版源码跑起来:Bazel 多模块构建 3 步走

🕒 发布时间:2026/9/8 20:05:17 📁 来源:尧图网络
IntelliJ IDEA 社区版源码跑起来Bazel 多模块构建 3 步走【免费下载链接】intellij-communityIntelliJ IDEA IntelliJ Platform项目地址: https://gitcode.com/GitHub_Trending/in/intellij-communityIntelliJ IDEA 社区版intellij-community是 JetBrains 开源的 IDE 平台源码它真正要解决的问题是用一套构建系统把上百个互相依赖的模块拼成一个能启动、能调试的完整 IDE。你平时在 IDE 里装插件、加模块背后走的就是这套模块装配逻辑。下面按「先跑起来 → 看懂结构 → 上手打包」的顺序走每一步都能独立落地。第一步拉下源码并补齐 Android 模块先把仓库克隆下来。仓库体积不小只要最新代码的话加上--depth 1做浅克隆能省一半时间git clone --depth 1 https://gitcode.com/GitHub_Trending/in/intellij-community cd intellij-communityIDEA 还依赖几个存放在独立仓库里的 Android 模块主仓库里并不自带。在项目根目录跑一下配套脚本就能拉齐Linux/macOS 用./getPlugins.shWindows 用getPlugins.bat具体实现见 getPlugins.sh。[!WARNING] 主仓库和 android 仓库必须git checkout到同一个分支或 tag版本对不上会在依赖解析阶段直接报错。第二步用 Bazel 把整个多模块工程编译出来这套源码正在从老构建体系迁移到 Bazel所以不能用 IDE 自带的 Build 直接编译得先装好 Bazel 插件。整个工程的依赖图就定义在根目录的 MODULE.bazel 里每个子目录的BUILD.bazel描述各自的产物。命令行编译跑bazel-build-all-community.cmd*.cmd脚本在 Windows 和 Unix 下都能用在 IDEA 里则选Build | Build Project。[!TIP] 如果 Maven 插件被禁用记得补一个指向USER_HOME/.m2/repository的路径变量MAVEN_REPOSITORY否则依赖拉不下来。第三步看懂模块怎么划分一个目录基本就是一个独立模块靠两类文件描述自己.iml模块元数据声明源码目录、测试目录和依赖顺序比如根目录的intellij.idea.community.main.iml。module-content.yaml声明这个模块的公开内容边界供构建和依赖检查使用。语言类能力集中在 java/ 下java-analysis-impl、java-impl、java-impl-refactorings等子目录各自成模块平台能力则在idea/customization/里按 base、backend、plugin 分层。按功能切模块、而不是按技术层次切是这套结构最明显的特征。打开工程给第一个类打断点 用较新版本的 IDEA 打开IDEA_HOME/.bazelproject不是直接打开文件夹等缺失的插件提示装完、索引建好再Build | Build Project。断点打在HelloWorld.java的第 6 行Breakpoints面板里Line Breakpoints会列出它勾选即生效。第一次跑会卡在索引和依赖下载上属正常现象。[!TIP] 卡住时先看idea.log多数是某个模块的依赖没解析完重跑一次Build Project即可。换个思路直接打成可分发安装包不想天天Build Project的话可以走打包路径。在根目录执行./installers.cmd -Dintellij.build.target.oscurrent它会按当前系统产出安装包产物选项都通过-D系统属性传给installers.cmd--debug则能让进程挂起并等 5005 端口接入调试器。想再进一步可以自己加一个子目录、写一份BUILD.bazel和module-content.yaml把它挂进MODULE.bazel的依赖图里就能体验一次「从零给这个多模块工程添一个新模块」的完整流程。【免费下载链接】intellij-communityIntelliJ IDEA IntelliJ Platform项目地址: https://gitcode.com/GitHub_Trending/in/intellij-community创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →