news 2026/9/8 18:22:32

IntelliJ IDEA 源码构建与运行:4 个场景快速上手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IntelliJ IDEA 源码构建与运行:4 个场景快速上手

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_community

Bazel(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.pumldocs/jar-format.puml是 PlantUML 源文件,装 PlantUML 插件后直接预览,能看懂插件加载顺序和 jar 布局;docs/readme.md 说明了 PlantUML 插件的安装方式。

常见坑

  • Windows 上 clone 报 longpaths 错:先执行git config --global core.longpaths truegit 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 18:22:10

前端项目部署实战:从 0 到 1 部署到阿里云服务器

&#x1f310; 前端项目部署实战&#xff1a;从 0 到 1 部署到阿里云服务器&#xff08;新手保姆级指南&#xff09;适用环境&#xff1a;阿里云 ECS&#xff08;CentOS 7/8 或 Ubuntu&#xff09;&#xff0c;Nginx&#xff0c;Vue/React 等前端项目 最终目标&#xff1a;将前…

作者头像 李华
网站建设 2026/9/8 18:21:09

HarmonyOS 7 新特性(四十七)|ArkWeb 预取:加载加速与白屏诊断

ArkWeb 页面“偶尔白屏”常被简单归因于网络&#xff0c;但真实原因可能是权限、DNS、证书、重定向、Cookie、DOM Storage、JavaScript、图片策略、User-Agent、渲染进程甚至业务页面自身异常。另一方面&#xff0c;盲目预取全部页面不仅浪费流量&#xff0c;还可能污染登录态和…

作者头像 李华
网站建设 2026/9/8 18:18:29

腾讯云AI Skills实操:让Agent稳定调用工具的完整指南

1. 为什么我最终把 Agent 的“技能包”放到了腾讯云 AI Skills 上先说结论&#xff1a;构建一个真正能落地的 Agent&#xff0c;难点从来不是模型推理&#xff0c;而是如何让 Agent 稳定地调用外部工具、执行多步骤任务、并在出错时还能自己绕回来。这个“工具编排”和“技能管…

作者头像 李华
网站建设 2026/9/8 18:18:25

生产级AI Agent全栈开发:核心不在LangChain,而在工程链路

如果有人给你一张“AI Agent全栈工程师训练营”的宣传海报&#xff0c;你第一反应是什么&#xff1f;是不是觉得又是培训机构在收割焦虑&#xff1f;说实话&#xff0c;我最初看到类似的项目时也是这个态度&#xff0c;直到我自己带团队从零把一个Agent应用推到生产环境&#x…

作者头像 李华