IntelliJ IDEA 源码构建与运行:4 个场景快速上手
【免费下载链接】intellij-communityIntelliJ IDEA & IntelliJ Platform项目地址: https://gitcode.com/GitHub_Trending/in/intellij-community
IntelliJ IDEA Community 是 JetBrains 开源的 Java/Kotlin IDE 源码仓库,也是 IntelliJ Platform(IDE 底座框架)插件开发的基础。这篇文章带你从克隆仓库到命令行运行、跑单测、打包安装程序,按场景走一遍完整流程。
快速上手:3 条命令跑通本地 IDE
第一步:克隆仓库
git clone https://gitcode.com/GitHub_Trending/in/intellij-community.git cd intellij-community得到本地源码根目录(下文简称<IDEA_HOME>),master 分支对应下一个大版本。
第二步:补齐 Android 配套模块
./getPlugins.sh # Windows 用 getPlugins.bat脚本从配套仓库拉取 Android 相关模块,主仓库与 Android 仓库务必 checkout 到相同分支或 tag。
第三步:命令行直接跑起来
./bazel.cmd run //build:idea_communityBazel(Google 的开源构建工具)首次会自动下载依赖并全量编译,等几分钟 IntelliJ IDEA 社区版窗口会启动,你可以直接操作这个"自己编出来的 IDE"。
场景一:用 IDE 打开源码做二次开发
安装 Bazel 插件
在File > Settings > Plugins里搜索安装 Bazel 插件并启用。项目正在向 Bazel 迁移,README 明确"仅用 IDE 内建构建已不支持",必须走 Bazel。
打开 .bazelproject
在File > Open中选中<IDEA_HOME>/.bazelproject,IDEA 会提示缺失或版本过旧的插件(如 Kotlin),按提示启用或升级后重启即可。
配置 Maven 变量
如果 Maven 插件被禁用,按提示把路径变量MAVEN_REPOSITORY指向<USER_HOME>/.m2/repository,避免 Maven 依赖解析失败。
场景二:只跑某一个模块的测试
指定测试用例跑单条测试
./tests.cmd -Dintellij.build.test.patterns=com.intellij.util.ArrayUtilTest参数-Dintellij.build.test.patterns传入全限定类名,只编译并执行这一条用例,适合改完一个工具类后快速验证。
按运行配置批量跑
./tests.cmd -Dintellij.build.test.configurations=ApiCheckTest参数-Dintellij.build.test.configurations传入预置的运行配置名,会按 CI 的方式批量执行一组测试;所有可选参数在 README.md 的 TestingOptions 一节里都有说明。
在 IDE 里跑单测
在Run > Edit Configurations... > Templates > JUnit里把 Working dir 设为<IDEA_HOME>/bin,VM options 加-ea,之后就可以右键测试类直接运行。
场景三:打一个当前系统的安装包
一键生成安装程序
./installers.cmd -Dintellij.build.target.os=current参数-Dintellij.build.target.os=current表示只打当前操作系统的安装包,产物落在 Bazel 输出目录里。想看最终装进 IDE 的模块清单,参考根目录 BUILD.bazel 中main目标的runtime_deps列表,一眼能看到全部模块。
用 Docker 隔离构建环境
docker build . --target intellij_idea --tag intellij_idea_env容器预装了 Bazel 和依赖工具,本地不需要提前装环境;记得加--user "$(id -u)"保持文件属主一致,避免权限报错。
场景四:搞清楚产物里到底装了什么
用 dist-visualizer 浏览产物结构
仓库自带 docs/dist-visualizer/README.md 工具,把安装包的 zip 解包后用浏览器查看每个模块的构成,判断"某个类到底由哪个模块打进来"时非常直观。
看平台级架构源图
docs/plugin-model.puml和docs/jar-format.puml是 PlantUML 源文件,装 PlantUML 插件后直接预览,能看懂插件加载顺序和 jar 布局;docs/readme.md 说明了 PlantUML 插件的安装方式。
常见坑
- Windows 上 clone 报 longpaths 错:先执行
git config --global core.longpaths true与git config --global core.autocrlf input,再克隆。 - 在 IDE 里点 Build 却编译失败:项目已迁到 Bazel,纯 IDE 内建构建不再支持,务必装 Bazel 插件。
- 主仓库和 android 仓库分支不一致:
getPlugins.sh拉的是配套分支,两边不 checkout 到相同 tag 会出现 API 对不上的编译错误。 - 首次
bazel.cmd run卡住不动:正常,首次会拉取所有依赖并全量编译,耐心等它出现INFO: Build completed。 - 测试命令行能跑、IDE 里跑不了:JUnit 模板的 Working dir 和
-ea没配,按场景二最后一步补齐。
资源汇总
- 主文档与构建命令全集:README.md
- 首次贡献流程与规范:CONTRIBUTING.md
- 根模块依赖声明:BUILD.bazel
- 产物可视化工具:docs/dist-visualizer/README.md
- 插件模型图源:docs/plugin-model.puml
跑通这套流程后,你手里就有一个可运行、可改、可打包的 IntelliJ IDEA 社区版;下一步挑一个 java/ 或 platform/ 下的模块,改一行代码验证自己的构建链路即可。
【免费下载链接】intellij-communityIntelliJ IDEA & IntelliJ Platform项目地址: https://gitcode.com/GitHub_Trending/in/intellij-community
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考