소스에서 빌드하기

소스에서 빌드하기 (Build from source)

Apache Druid를 소스에서 직접 빌드할 수 있어요. 빌드하려는 버전과 일치하는 이 페이지의 버전을 사용하세요. 함께 사용할 Java와 Maven부터 준비하고, mvn clean install로 빌드해요.

출처: 문서

본문

Apache Druid를 소스에서 직접 빌드할 수 있어요. 빌드하려는 버전과 일치하는 이 페이지의 버전을 사용하세요.

master의 최신 코드를 빌드하려면 이 페이지의 최신 버전을 여기에서 따라 하세요. URL에 /master/가 포함되어 있는지 확인하세요.

사전 요구사항

Java와 Maven 설치

지원되는 JDK를 얻는 방법은 Java documentation을 참고하세요.

Maven version 3.x

기타 의존성

  • 배포 빌드에는 Python 3.x와 pyyaml 모듈이 필요해요.
  • 통합 테스트에는 pyyaml 버전 5.1 이상이 필요해요.

소스 코드 다운로드

git clone [email protected]:apache/druid.git
cd druid

소스에서 빌드

Druid를 소스에서 빌드하는 기본 명령은 다음과 같아요:

mvn clean install

이 명령은 정적 분석, 단위 테스트, 클래스 컴파일을 실행하고 프로젝트를 JAR로 패키징해요. 소스나 바이너리 배포 tarball은 생성하지 않아요. 이 빌드는 완료하는 데 시간이 좀 걸릴 수 있다는 점에 유의하세요.

기본 단계 외에 다음 프로파일과 속성을 추가할 수도 있어요:

  • -Pdist - 배포 프로파일: core extension과 의존성을 끌어와 파일을 distribution/target/apache-druid-x.x.x-bin.tar.gz로 패키징해 바이너리 배포 tarball을 생성해요.
  • -Papache-release - Apache 릴리스 프로파일: GPG 서명과 체크섬을 생성하고 distribution/target/apache-druid-x.x.x-src.tar.gz로 소스 배포 tarball을 빌드해요.
  • -Prat - Apache Rat 프로파일: Apache Rat 라이선스 감사 도구를 실행해요.
  • -DskipTests - 단위 테스트를 건너뛰어요(빌드 시간 단축).
  • -Dweb.console.skip=true - 프론트엔드 프로젝트를 건너뛰어요.

이들을 조합해서, 서명과 체크섬과 함께 소스·바이너리 배포판을 빌드하고 라이선스를 감사하며 단위 테스트를 건너뛰고 싶다면 다음을 실행해요:

mvn clean install -Papache-release,dist,rat -DskipTests

개발용 빌드

개발용으로는 dist 프로파일만 사용하고 Apache release와 rat 프로파일은 건너뛰세요.

mvn clean install -Pdist -DskipTests

빌드를 더 빠르게 하고 싶다면 -T1C 옵션으로 병렬 빌드를 활성화하고 일부 정적 분석 검사를 건너뛸 수 있어요.

mvn clean install -Pdist -T1C -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -Denforcer.skip=true

distribution/target 디렉터리 아래에서 배포 tar 파일을 찾을 수 있을 거예요.

잠재적 문제

pyyaml 누락

이 페이지의 지침을 따라 소스에서 Druid를 빌드하는데 다음 오류가 나온다면:

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (generate-binary-license) on project distribution: Command execution failed.: Process exited with an error: 1 (Exit value: 1) -> [Help 1]

해결 방법: Python과 yaml 모듈이 설치되어 있는지 확인하세요:

pip install pyyaml

일부 시스템에서는 Python 3.x 버전의 pip를 사용해야 해요:

pip3 install pyyaml

더 알아보기 (Learn more)