VSCode로 FE 개발 환경 설정하기
이 문서에서는 VSCode를 사용하여 개발용 컴퓨터, WSL 또는 Docker에서 Doris FE 개발 환경을 설정하는 방법을 설명합니다. VSCode를 선호하는 개발자는 Remote 확장 프로그램을 사용하여 원격으로 개발하고 디버깅할 수 있습니다.
1. 사전 요구 사항
| 구성 요소 | 버전 요구 사항 | 용도 |
|---|---|---|
| JDK | 11+ (Java 확장 프로그램에 필요); 컴파일에는 JDK 8 사용 가능 | 두 버전을 모두 설치하고 설정을 통해 전환 |
| VSCode | 최신 안정 버전 | 편집기 |
| Extension Pack for Java | 최신 버전 | Java 언어 지원 |
| Remote 확장 프로그램 | Remote - SSH / Remote - WSL / Remote - Containers | 원격 개발 |
JDK 11과 JDK 8을 ~/lib와 같은 별도의 디렉터리 아래에 각각 설치하여, IDE 확장 프로그램용과 소스 컴파일용으로 사용하는 것을 권장합니다.
2. 소스 코드 복제 및 열기
-
GitHub에서 소스 코드를 다운로드합니다.
git clone https://github.com/apache/doris.git -
VSCode에서 소스 트리의
fe디렉터리를 엽니다(저장소 루트 전체를 열지 마세요).
3. VSCode 설정
settings.json을 fe/.vscode/ 아래에 생성하고 Java 런타임과 Maven 경로를 설정합니다.
| 설정 항목 | 설명 |
|---|---|
java.configuration.runtimes | Java 확장 프로그램이 프로젝트별로 사용할 수 있는 JDK 목록을 등록합니다 |
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 매개변수 | 값 | 설명 |
|---|---|---|
transport | dt_socket | Socket 전송 사용 |
server | y | 디버그 서버로 시작하고 디버거가 연결될 때까지 대기 |
suspend | n | 시작 시 실행을 일시 중단하지 않고 정상 실행 |
address | 5005 | 수신 대기 포트; 변경 가능 |
FE를 시작한 후 VSCode의 Java Debug 확장 프로그램에서 연결 기능으로 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으로 변경하거나 디버거를 직접 연결합니다.