IntelliJ IDEA 社区版源码构建指南:3 步在本地跑起自编译 IDE
【免费下载链接】intellij-communityIntelliJ IDEA & IntelliJ Platform项目地址: https://gitcode.com/GitHub_Trending/in/intellij-community
IntelliJ IDEA 社区版(intellij-community)是 JetBrains IDE 家族的开源代码库,覆盖 IntelliJ Platform、IntelliJ IDEA Community 与 PyCharm 的可构建源码,核心价值是让你能从源码本地编译、运行整个 IDE,而不只是下载现成安装包。适合有 Java 或 Kotlin 基础、想读懂 IDE 内部实现或动手改平台代码的开发者,跟着走一遍,几分钟内就能在本地跑起一个自己编译的 IntelliJ IDEA。下面聚焦克隆、Bazel 构建与运行三块,不深入各语言插件的源码细节。
克隆 IntelliJ 社区版源码
拉取主仓库
先做浅克隆拉主仓库,仓库体积大,只取最新提交能省下大量下载时间和磁盘。
git clone --depth 1 https://gitcode.com/GitHub_Trending/in/intellij-community.git cd intellij-community进入目录后能看到 BUILD.bazel、MODULE.bazel 这些 Bazel 工程文件,说明主干代码已就位。 Windows 用户先配好 Git 两项,否则深层目录树会在克隆中途报路径过长:
git config --global core.longpaths true git config --global core.autocrlf input这两条设置完成后重跑克隆,应能一路走完不再中断。
补齐 Android 模块
运行仓库自带脚本补齐 Android 模块,这些模块放在独立仓库,缺了构建时会报找不到依赖。
./getPlugins.sh脚本跑完会在仓库里多出一个 Android 相关子目录。这里有个前提:getPlugins.sh 要求主仓库与 android 仓库停在同一分支或 tag,拉取前先git branch确认当前分支,避免两边版本错位。
完成首次 Bazel 源码构建
在 IDE 内构建
项目正处在向 Bazel 迁移的过程中,IDE 内置构建已不再支持,必须先装 Bazel 插件,否则Build > Build Project点下去没有反应。 打开File > Settings > Plugins,在 Marketplace 搜索 Bazel 插件并安装,重启 IDE。 接着用较新版本的 IntelliJ IDEA 打开<IDEA_HOME>/.bazelproject,选Build > Build Project触发编译;若弹出缺少或版本过旧的插件提示,按提示启用或升级该插件后再重启。
在命令行构建
直接执行官方构建脚本,它兼容 Windows 与 Unix,适合不想依赖 IDE 集成时用。
./bazel-build-all-community.cmd脚本把各模块依次交给 Bazel 编译,终端末尾打印产物路径即构建成功。需要产出可分发的安装包时,再在项目根目录跑 installers.cmd。
运行并调试刚构建的 IDE
命令行启动
命令行启动构建产物,确认主窗口能正常弹出、代码能加载。
./bazel.cmd run //build:idea_community首次启动会做初始化加载,稍等片刻出现主窗口即成功。下图是同一 IDE 在不同操作系统外观(L&F)下的调试断点界面,能看到 Java 源码已加载、断点已打在第 6 行,说明你编译出的 IDE 功能完整。
在 IDE 内运行时,从Run > Run选预置的Run //build:idea_community配置即可,效果与命令行等价。
Bazel 构建报错或 IDE 构建无反应
现象:IDE 里点Build > Build Project毫无反应,或命令行报no such target、Bazel 版本不匹配之类的错。原因:迁移期旧构建系统已下线,Bazel 插件缺失或版本过旧会直接断掉构建链路。解法:确认 Bazel 插件已安装并启用,命令行一律走 bazel-build-all-community.cmd,不要手写 bazel 参数去拼目标;如果还没解决 → 用 Dockerfile 起一个预装好依赖和工具的容器构建环境,绕开本地工具链差异。
Android 模块依赖冲突
现象:getPlugins.sh跑完后,构建报找不到符号或依赖版本对不上。原因:主仓库和 android 仓库没对齐到同一分支或 tag,模块间接口对不上。解法:两个仓库git checkout到完全相同的分支或 tag,再重跑./getPlugins.sh;如果还没解决 → 对照 README.md 确认当前构建目标对应的分支再拉。
Windows 克隆报路径过长
现象:git clone中途断开,提示filename too long、path too long或换行符警告。原因:Windows 默认 Git 未开启长路径支持,仓库深层目录树超出系统上限。解法:先执行git config --global core.longpaths true与git config --global core.autocrlf input再克隆;如果还没解决 → 改用--depth 1浅克隆,减少检出的历史文件。
下一步可以深入的方向
核心文档入口
- README.md:源码获取、Bazel 构建、运行 IDE 与 CI 跑测试的完整主线,排查构建问题先回这里。
- docs/plugin.md:指向 IntelliJ 插件模型的官方文档,理解扩展点与插件生命周期从这里切入。
- CONTRIBUTING.md:贡献规范、commit 信息格式和可接受的改动范围,准备提交前读一遍。
进阶探索
- 读根目录 BUILD.bazel 与各模块的
BUILD.bazel,弄清 Bazel 依赖图如何组织整个 IDE。 - 顺着
bin/与build/目录,摸清启动参数来源和产物打包逻辑。 - 翻 docs/ 里的构建脚本与 jar 格式、服务获取时序等设计图,补全构建视角。
遇到文中没覆盖的情况,回 README.md 对照排查,或到 JetBrains 开源社区对应板块提问。
【免费下载链接】intellij-communityIntelliJ IDEA & IntelliJ Platform项目地址: https://gitcode.com/GitHub_Trending/in/intellij-community
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考