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는 확장 이름입니다.