从源码编译 IDEA 社区版

项目特殊的切分支方式,IDEA 自带的 svn 插件逻辑不甚兼容,特别容易出现 OutOfMemoryError。查明原因后,准备更改 svn 插件以修复 OOM 问题。下面记录一下从源码编译 IDEA 社区版的相关注意事项。

注意,以下经验基于 IDEA2023.1。

源码准备

构建最新版本

如果是构建最新版本,直接从 intellij-community git clone 最新源码:

1
git clone https://github.com/JetBrains/intellij-community.git

下载整个仓库非常大,需要耗费比较多时间,如果不需要仓库历史,可以加上 git clone --depth 1 参数节省时间。

构建社区版需要依赖 android module,这是一个独立的仓库,可以直接在上一步 clone 好的目录运行 getPlugin.sh 直接获取。

构建特定版本

构建特定版本比较麻烦一些,需要从 tags 中下载制定版本并解压。(特别容易断线,多尝试几次)

android module 也要下载对应的版本 tags,存放到上一步解压的目录的根目录,并命名为 android

准备对应版本的 IDEA

如果是构建最新版本,需要安装最新版本的 IDEA;若是特定版本,则选定前一个版本的 IDEA。历史版本的 IDEA 可以从这里下载。

构建编译

使用正确版本的 IDEA 打开上一步获取的项目根目录文件夹,若遇到提示升级插件版本,点升级并重启 IDEA。

全部索引构建完毕,直接可以运行 IDEA-MAIN 运行调试;若需要构建安装包,在 Run Configuration 选择 Build IDEA Community Installers (current OS) 运行即可编译出安装包。