pull-deps 도구

pull-deps 도구

pull-deps는 Apache Druid의 도구로, 의존성을 로컬 저장소로 내려받고 필요에 따라 확장 디렉터리에 배치해줘요. 이 문서에서는 pull-deps의 각 커맨드라인 옵션과 실제 실행 예시를 설명드릴게요.

출처: 문서

본문

pull-deps는 Apache Druid 도구로, 의존성을 로컬 저장소로 내려받고 필요에 따라 확장 디렉터리에 배치해줘요. pull-deps는 여러 커맨드라인 옵션을 가지며, 다음과 같아요:

-c 또는 --coordinate (여러 번 지정 가능) 내려받을 확장 coordinate로, 뒤에 maven coordinate가 옵니다. 예: org.apache.druid.extensions:mysql-metadata-storage

--clean 의존성을 내려받기 전에 기존 확장 디렉터리를 제거합니다.

-l 또는 --localRepository Maven이 내려받은 파일을 저장할 로컬 저장소. 그러면 pull-deps가 필요에 따라 이 파일들을 확장 디렉터리에 배치해요.

-r 또는 --remoteRepository 원격 저장소를 추가합니다. --no-default-remote-repositories가 지정되지 않으면, 이 저장소들은 https://repo1.maven.org/maven2/ 다음에 사용돼요.

--no-default-remote-repositories 기본 원격 저장소인 https://repo1.maven.org/maven2/를 사용하지 않습니다. --remoteRepository를 통해 직접 제공된 저장소만 사용해요.

-d 또는 --defaultVersion 버전 정보가 없는 확장 coordinate에 사용할 버전. 예를 들어 확장 coordinate가 org.apache.druid.extensions:mysql-metadata-storage이고 기본 버전이 37.0.0이라면, 이 coordinate는 org.apache.druid.extensions:mysql-metadata-storage:37.0.0으로 취급됩니다.

--use-proxy 원격 저장소 서버에 요청을 보낼 때 http/https 프록시를 사용합니다. 이 옵션이 활성화되면 --proxy-host와 --proxy-port를 반드시 명시적으로 설정해야 해요.

--proxy-type 프록시 타입을 설정합니다. http 또는 https여야 하며, 기본값은 https예요.

--proxy-host 프록시 호스트를 설정합니다. 예: proxy.com.

--proxy-port 프록시 포트 번호를 설정합니다. 예: 8080.

--proxy-username 프록시에 연결할 사용자 이름을 설정합니다. 이 옵션은 프록시 서버가 인증을 사용할 때만 필요해요.

--proxy-password 프록시에 연결할 패스워드를 설정합니다. 이 옵션은 프록시 서버가 인증을 사용할 때만 필요해요.

pull-deps를 실행하려면 다음을 해야 해요:

  • druid.extensions.directory를 지정해서 pull-deps가 확장을 어디에 둘지 알려줍니다. 지정하지 않으면 기본값이 사용되는데, Configuration 문서를 참고하세요.
  • -c 옵션을 이용해 내려받을 대상을 알려줍니다. -c 뒤에는 maven coordinate가 옵니다.

예시: 특정 버전의 mysql-metadata-storage를 내려받고 싶다면, -c org.apache.druid.extensions:mysql-metadata-storage:37.0.0 옵션과 함께 pull-deps 명령을 실행하면 됩니다. 예시 명령은 다음과 같아요:

java -classpath "/my/druid/lib/*" org.apache.druid.cli.Main tools pull-deps --clean -c org.apache.druid.extensions:mysql-metadata-storage:37.0.0

--clean이 지정됐기 때문에, 이 명령은 먼저 druid.extensions.directory에 지정된 디렉터리를 제거한 다음 다시 생성하고 확장을 그곳에 내려받기 시작해요. 내려받기가 끝난 뒤 지정한 확장 디렉터리로 가면 다음을 볼 수 있어요:

tree extensions
extensions
└── mysql-metadata-storage
    └── mysql-metadata-storage-37.0.0.jar

참고로 --defaultVersion을 지정하면 coordinate에 버전 정보를 넣지 않아도 됩니다. 예를 들어 mysql-metadata-storage가 버전 37.0.0을 사용하길 원한다면, 위 명령을 다음과 같이 바꿀 수 있어요:

java -classpath "/my/druid/lib/*" org.apache.druid.cli.Main tools pull-deps --defaultVersion 37.0.0 --clean -c org.apache.druid.extensions:mysql-metadata-storage

주의: pull-deps 도구를 사용하려면 확장의 Maven groupId, artifactId, 버전을 반드시 알아야 합니다. 여기 나열된 Druid 커뮤니티 확장의 경우 groupId는 "org.apache.druid.extensions.contrib"이고 artifactId는 확장 이름입니다.