跳到主要内容

使用 VSCode 搭建 FE 开发环境

本文介绍如何使用 VSCode 在开发机、WSL 或 Docker 中搭建 Doris FE 开发环境。习惯使用 VSCode 的开发者可以通过 Remote 插件进行远程开发和调试。

1. 环境准备

组件版本要求用途
JDK11+(Java 插件需要);编译时可用 JDK 8同时安装两套并通过配置切换
VSCode最新稳定版编辑器
Extension Pack for Java最新版本Java 语言支持
Remote 系列插件Remote - SSH / Remote - WSL / Remote - Containers远程开发

建议在 ~/lib 等独立目录下分别安装 JDK 11 与 JDK 8,分别用于 IDE 插件和源码编译。

2. 拉取并打开源码

  1. 从 GitHub 下载源码:

    git clone https://github.com/apache/doris.git
  2. 使用 VSCode 打开源码下的 fe 目录(而非整个仓库根目录)。

3. 配置 VSCode

fe/.vscode/ 下创建 settings.json,配置 Java 运行时与 Maven 路径。

配置项说明
java.configuration.runtimes注册可用 JDK 列表,供 Java 插件按项目选择
java.jdt.ls.java.home指向 JDK 11+ 目录,用于 vscode-java 插件本身的运行
maven.executable.path指向本地 Maven 可执行文件,用于 maven-language-server 插件

参考示例:

{
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "/!!!path!!!/jdk-1.8.0_191"
},
{
"name": "JavaSE-11",
"path": "/!!!path!!!/jdk-11.0.14.1+1",
"default": true
}
],
"java.jdt.ls.java.home": "/!!!path!!!/jdk-11.0.14.1+1",
"maven.executable.path": "/!!!path!!!/maven/bin/mvn"
}

4. 编译 FE

完整编译过程可参考:

5. 配置远程调试

如需通过 VSCode 远程调试 FE,需要在 FE 启动时附加 JDWP 参数:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

具体做法:编辑 doris/output/fe/bin/start_fe.sh,在 $JAVA $final_java_opt 后面追加上述参数。

JDWP 参数说明
transportdt_socket使用 Socket 传输
servery启动为调试服务端,等待调试器接入
suspendn启动时不挂起,正常运行
address5005监听端口,可自定义

启动 FE 后,在 VSCode 中通过 Java Debug 插件以 Attach 方式连接到 host:5005 即可进行断点调试。

6. 常见问题(FAQ)

Q1:Java 插件提示 JDK 版本过低

java.jdt.ls.java.home 必须指向 JDK 11+。即使编译用 JDK 8,插件自身也需要 JDK 11+ 运行。

Q2:Maven 任务失败 / 找不到 mvn

确认 maven.executable.path 指向有效的 mvn 可执行文件,或将其加入系统 PATH

Q3:远程调试无法连接

  • 确认 FE 进程实际加载了 JDWP 参数(ps -ef | grep java 查看命令行)。
  • 确认 address 端口未被防火墙拦截。
  • 若使用 suspend=y,则 FE 会卡住等待调试器接入,请改为 suspend=n 或主动接入。