IntelliJ IDEA 开源源码上手指南:从 clone 到本地跑通的 6 步
【免费下载链接】intellij-communityIntelliJ IDEA & IntelliJ Platform项目地址: https://gitcode.com/GitHub_Trending/in/intellij-community
你想给 IDE 的补全逻辑打个断点,或追一下重命名重构的内部实现,打开仓库却先被满目录的 BUILD.bazel 拦住。这个仓库是IntelliJ IDEA与 IntelliJ 平台的开源源码,基于 Apache 2.0 协议,全部在本地构建、本地运行,想看哪一行就读哪一行。
核心能力总览:IntelliJ 平台能看什么、怎么构建
读代码,找核心实现
- Java 语言支持:分析、重构、调试逻辑在
java/下,目录拆分得很细 - 数据表格与网格 UI 在
grid/,多平台新框架 Fleet 在fleet/ - 平台图标资源集中在
images/
相关源码位于 java/、grid/、fleet/。
构建,拿到能跑的 IDEA
- 构建系统已迁到 Bazel,一键编译脚本是
bazel-build-all-community.cmd - 打安装包用
installers.cmd,可用参数见BuildOptions.kt - 想省事可以用仓库自带
Dockerfile在容器里构建
构建配置集中在 common.bazelrc 与 MODULE.bazel。
改代码,先懂规矩
AGENTS.md写明了硬性约定,比如*.iml文件是模块定义的源头- 提交前读 CONTRIBUTING.md,修 bug 优先,加功能需先沟通
典型工作流:把 IntelliJ IDEA 源码跑起来
- 先配置 Git,避免 Windows 长路径和换行符问题:
git config --global core.longpaths true git config --global core.autocrlf input- 克隆仓库到本地,目录名即
<IDEA_HOME>:
git clone https://gitcode.com/GitHub_Trending/in/intellij-community在
<IDEA_HOME>下补拉 Android 相关模块:Unix 跑./getPlugins.sh,Windows 跑getPlugins.bat。用 IntelliJ IDEA 2026.1 或更高版本打开根目录的
.bazelproject文件,等它索引完。点 Build | Build Project,首次全量编译大约要等几十分钟,去喝杯咖啡。
从 Run 菜单选预设好的Run //build:idea_community,命令行等价命令是
./bazel.cmd run //build:idea_community,跑起来的这个 IDEA 就是你刚编译的产物。
首次启动的配置清单
- 装Bazel 插件(Settings | Plugins | Marketplace),README 明确说 IDE 内置构建已不再支持
- 若 Maven 插件处于禁用状态,补一个指向
<USER_HOME>/.m2/repository的MAVEN_REPOSITORY路径变量 - 打开项目时若提示缺少插件(比如 Kotlin),按提示启用或升级后重启即可
进阶与隐藏功能
- 仓库历史很大?clone 时加
--depth 1只拉最新一次提交,下载量能省一大截。 common.bazelrc里已经帮你配好了磁盘缓存(上限 32G、保留 28 天)和远端缓存,二次构建会快很多,一般不用自己动。intellij.yaml是容易被忽略的本地行为配置:共享索引地址、仓库库校验和开关都在这里,改它比翻 Bazel 参数快。- 打安装包可以只针对当前系统,省一半时间:
./installers.cmd -Dintellij.build.target.os=current。 - 想提 patch?
CONTRIBUTING.md提到有 "patch welcome" 标签的问题清单,专挑社区欢迎的活。
快速参考:常用文件与高频问题
| 文件 | 作用 |
|---|---|
.bazelproject | 用 IDEA 打开项目就点它 |
MODULE.bazel | Bazel 依赖与工具链定义 |
common.bazelrc | 缓存、内存、并行度等全局参数 |
getPlugins.sh | 补拉 Android 等附加模块 |
installers.cmd | 构建安装程序包 |
intellij.yaml | 共享索引、校验和等本地配置 |
构建报错?多半是缺 Bazel 插件;先确认插件已装且项目是通过.bazelproject打开的。
该 checkout 哪个分支?master 是下一个大版本的源码;旧版本对应分支可在 README 的 Build Number Ranges 一栏查。
Android 模块缺失?重新跑getPlugins.sh,并确保intellij-community与android两个仓库处于同一分支或 tag。
clone 下来打开.bazelproject,一个下午就能拥有可打断点的本地 IDEA。这里是 IntelliJ 平台的开源主场,源码、构建脚本和贡献规范都摊在你眼前。
核心源码:java/ | 官方文档:README.md、CONTRIBUTING.md
【免费下载链接】intellij-communityIntelliJ IDEA & IntelliJ Platform项目地址: https://gitcode.com/GitHub_Trending/in/intellij-community
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考