MVN/POMS없이 Maven Repo에서 아티팩트를 다운로드하기위한 유틸리티 [폐쇄
-
23-08-2019 - |
문제
MVN이 아닌 Maven 클라이언트 (Maven 분포에 포함 된 이진)가 POM을 사용하지 않고 Maven 저장소에서 아티팩트를 끌어내는 데 사용할 수있는 Maven 클라이언트가 있습니까? OPS 팀이 빌드 스냅 샷 (빌드 스냅 샷 포함)을 픽업 할 수 있도록 Maven 저장소를 Repo로 사용하고 싶지만 POM을 작성하고 종속성을 선언하는 것을 엉망으로 만들 필요가 없습니다. 이상적으로는 Repo URL을 전달하고 주어진 아티팩트를 좌표하고 다운로드 할 수있는 CLI 클라이언트 만 찾고 있습니다. 그런 것이 존재합니까, 아니면 이것에 대한 일회성 스크립트를 쓰는 것이 더 낫습니까?
해결책
Nexus를 사용하십시오. 다른 팀이 아티팩트를 다운로드하는 데 사용할 수있는 웹 인터페이스를 제공합니다. http://nexus.sonatype.org/
다른 팁
3 가지 쉬운 옵션이 있습니다.
- 저장소의 아티팩트를 가리키는 링크를 보내고 브라우저를 사용하도록하십시오.
- 설치 및 사용
wget
(wget http://path/to/artifact.extension
). - 설치 및 사용
mvn dependency:get
(필요합니다mvn
하지만 그렇지 않습니다 apom.xml
, 보다 이 답변 자세한 사항은).
사용 Maven Embedder. 요점까지, Maven Embedder 내부의 기능을 사용하여 항아리를 해결하고 다운로드하십시오. 간단한 CLI를 작성하려는 경우 저장소 구조가 복잡하지 않으며 Maven Repo URL, Artifact ID, Group ID 및 버전을 사용하여 JAR의 전체 URL을 생성하는 스크립트를 쉽게 작성할 수 있습니다.
이것이 우리가하는 방법입니다 jcabi-aether:
final File repo = this.session.getLocalRepository().getBasedir();
final Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
JavaScopes.RUNTIME
);
이 LIB에 제공 해야하는 것은 1) 원격 저장소 목록, 2) 로컬 리포지토리의 위치 및 3) 유물의 Maven 좌표입니다. 라이브러리가 사용됩니다 아파치 에테르 Sonatype에서.
기술적으로 저장소는 HTTP를 통해 액세스하므로 리포지토리 위치, 아티팩트 및 좌표가 주어지면 OPS 팀에 브라우저에서 발생할 수있는 아티팩트에 URL을 제공 할 수 있어야합니다.
생각하십시오 Pax URL 이를 통해 일반 URL을 사용하여 Maven 아티팩트를 참조 할 수 있습니다.
mvn:groupId/artifactId/version
보다 Pax URL 웹 사이트 자세한 정보 (MVN 프로토콜 핸들러).
토니