MVN/POMS없이 Maven Repo에서 아티팩트를 다운로드하기위한 유틸리티 [폐쇄

StackOverflow https://stackoverflow.com/questions/884808

문제

MVN이 아닌 Maven 클라이언트 (Maven 분포에 포함 된 이진)가 POM을 사용하지 않고 Maven 저장소에서 아티팩트를 끌어내는 데 사용할 수있는 Maven 클라이언트가 있습니까? OPS 팀이 빌드 스냅 샷 (빌드 스냅 샷 포함)을 픽업 할 수 있도록 Maven 저장소를 Repo로 사용하고 싶지만 POM을 작성하고 종속성을 선언하는 것을 엉망으로 만들 필요가 없습니다. 이상적으로는 Repo URL을 전달하고 주어진 아티팩트를 좌표하고 다운로드 할 수있는 CLI 클라이언트 만 찾고 있습니다. 그런 것이 존재합니까, 아니면 이것에 대한 일회성 스크립트를 쓰는 것이 더 낫습니까?

도움이 되었습니까?

해결책

Nexus를 사용하십시오. 다른 팀이 아티팩트를 다운로드하는 데 사용할 수있는 웹 인터페이스를 제공합니다. http://nexus.sonatype.org/

다른 팁

3 가지 쉬운 옵션이 있습니다.

  1. 저장소의 아티팩트를 가리키는 링크를 보내고 브라우저를 사용하도록하십시오.
  2. 설치 및 사용 wget (wget http://path/to/artifact.extension).
  3. 설치 및 사용 mvn dependency:get (필요합니다 mvn 하지만 그렇지 않습니다 a pom.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 프로토콜 핸들러).

토니

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top