JetBrains/intellij-community
GitHub: JetBrains/intellij-community
JetBrains 官方 IntelliJ IDEA 社区开源版与 IntelliJ 平台的源代码仓库,为 IDE 平台开发与定制提供构建基础。
Stars: 20360 | Forks: 5989
[](https://github.com/JetBrains/.github/blob/main/profile/README.md) [](https://github.com/JetBrains/intellij-community/actions/workflows/IntelliJ_IDEA.yml?query=branch%3Amaster) [](https://github.com/JetBrains/intellij-community/actions/workflows/PyCharm.yml?query=branch%3Amaster)
# IntelliJ 开源代码仓库
本代码仓库是 JetBrains IDE 代码库的开源部分。
它同时也是 [IntelliJ 平台开发](https://www.jetbrains.com/opensource/idea)的基础。
这些说明将帮助您构建并运行 IntelliJ 平台 / IntelliJ IDEA / PyCharm 的开源部分。
以下约定将用于指代您机器上的目录:
* `` 是您的操作系统用户主目录。
* `` 是 **IntelliJ 源代码**的根目录。
## 获取源代码
本节将引导您获取项目源代码,并帮助避免在 IDE 中打开项目之前在 Git 配置和其他步骤中出现的常见问题。
### 前置条件
- 安装 [Git](https://git-scm.com/)。
- 在 **Windows** 上,设置以下 Git 选项以避免在克隆期间出现常见问题:
git config --global core.longpaths true
git config --global core.autocrlf input
### 克隆主代码仓库
IntelliJ 开源代码仓库可在 [GitHub 代码仓库](https://github.com/JetBrains/intellij-community)中获取,
可以将其克隆或作为 zip 文件(基于分支)下载到 `` 中。
**master**(_默认_)分支包含将用于创建所有 JetBrains IDE 下一个主要版本的源代码。
JetBrains IDE 早期版本的分支名称和构建号可以在
[构建号范围](https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html)页面上找到。
您可以使用 IntelliJ IDEA [克隆此项目](https://www.jetbrains.com/help/idea/manage-projects-hosted-on-github.html#clone-from-GitHub)
(请参阅[在 IDE 中打开 IntelliJ IDEA 源代码](#opening-the-intellij-idea-source-code-in-the-ide))。
或者,在终端中运行以下命令:
```
git clone https://github.com/JetBrains/intellij-community.git
cd intellij-community
```
### 获取 Android 模块
IntelliJ IDEA 需要从单独的 Git 代码仓库获取额外的 Android 模块。
在项目根目录 `` 下运行以下脚本来获取所需的模块:
- Unix: `./getPlugins.sh`
- Windows: `getPlugins.bat`
## 构建 IntelliJ IDEA
这些说明将帮助您从源代码构建 IntelliJ IDEA,这是 IntelliJ 平台开发的基础。
### 在 IDE 中打开 IntelliJ IDEA 源代码
**前置条件**:
- 安装 [IntelliJ IDEA 2026.1](https://www.jetbrains.com/idea/download) 或更高版本。
- 安装 [Bazel 插件](https://plugins.jetbrains.com/plugin/22977-bazel)(通过 _Settings | Plugins | Marketplace_)。
- 如果 **Maven** 插件被禁用,请[添加路径变量](https://www.jetbrains.com/help/idea/absolute-path-variables.html)
`MAVEN_REPOSITORY`,指向 `/.m2/repository` 目录。
使用最新版本的 IntelliJ IDEA,点击 _File | Open_ 并选择 `/.bazelproject`。
如果 IntelliJ IDEA 显示有关缺少或过期的所需插件(例如 Kotlin)的消息,
请[启用、升级或安装该插件](https://www.jetbrains.com/help/idea/managing-plugins.html)并重启 IntelliJ IDEA。
### 构建 IntelliJ IDEA 应用程序
**在 IntelliJ IDEA 中**,从主菜单中选择 _Build | Build Project_。
**从命令行**,在 `` 目录下运行 [bazel-build-all-community.cmd](bazel-build-all-community.cmd) 脚本
(**注意**:所有 `*.cmd` 脚本均可同时在 Windows 和 Unix 系统上运行)。
**要构建安装包**,请在 `` 目录下运行 [installers.cmd](installers.cmd) 脚本。
构建安装程序的选项作为系统属性传递给 `installers.cmd` 命令。
您可以在 [BuildOptions.kt](platform/build-scripts/src/org/jetbrains/intellij/build/BuildOptions.kt) 中找到可用属性的列表。
传递 `--debug` 以暂停并等待调试器连接到端口 5005。
安装程序构建示例:
```
# 仅为当前操作系统构建 installers:
./installers.cmd -Dintellij.build.target.os=current
```
### Docker 化的构建环境
要在预装了依赖项和工具的 Docker 容器中构建安装包,
请在 `` 目录下运行以下命令(在 Windows 上使用 PowerShell):
```
docker build . --target intellij_idea --tag intellij_idea_env
docker run --rm --user "$(id -u)" --volume "${PWD}:/community" intellij_idea_env
```
## 运行 IntelliJ IDEA
要运行从源代码构建的 IntelliJ IDEA,请从主菜单中选择 _Run | Run..._
并选择预配置的运行配置 `Run //build:idea_community`。
要在构建上运行测试,请将这些设置应用于 _Run | Edit Configurations... | Templates | JUnit_ 配置选项卡:
* Working dir:`/bin`
* VM options:`-ea`
### 在 CI/CD 环境中运行 IntelliJ IDEA
要在 IntelliJ IDEA 之外运行测试,请在 `` 目录下使用 `tests.cmd` 命令。
运行测试的选项作为系统属性传递给 `tests.cmd` 命令。
您可以在 [TestingOptions.kt](platform/build-scripts/src/org/jetbrains/intellij/build/TestingOptions.kt) 中找到可用属性的列表
```
# 运行特定 run configuration:
./tests.cmd -Dintellij.build.test.configurations=ApiCheckTest
```
```
# 运行特定 test:
./tests.cmd -Dintellij.build.test.patterns=com.intellij.util.ArrayUtilTest
```
要调试测试,请使用:`-Dintellij.build.test.debug.enabled=true -Dintellij.build.test.debug.suspend=true -Dintellij.build.test.debug.port=5005`。
`tests.cmd` 仅用于从命令行运行 [CommunityRunTestsBuildTarget](build/src/CommunityRunTestsBuildTarget.kt)。
您也可以直接从 IDEA 中调用它,有关示例请参见运行配置 `tests`。
标签:IntelliJ Platform, JetBrains, JS文件枚举, SOC Prime, 域名枚举, 开发工具, 插件开发, 网络安全研究, 请求拦截, 集成开发环境