[maven-2] 특정 Maven 아티팩트를 하나의 명령 줄에서 어떻게 다운로드 할 수 있습니까?


2 Answers

Maven Dependency Plugin 의 최신 버전 (2.8)을 사용하면 Maven Central Repository에서 이슈를 다운로드하는 것은 간단합니다 :

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=groupId:artifactId:version[:packaging[:classifier]]

여기서 groupId:artifactId:version 등은 Maven 좌표입니다.

예를 들어, Maven 2.0.9, Maven 2.2.1 및 Maven 3.0.4로 테스트되었습니다.

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=org.hibernate:hibernate-entitymanager:3.4.0.GA:jar:sources

(첫 번째 장소에서 멋진 답변 을 제공 한 Pascal Thivent에게 감사드립니다. 다른 답변을 추가하고 있습니다. 주석에 맞지 않아 편집하기에 너무 광범위하기 때문입니다.)

Question

install : install-file을 사용하여 이슈를 설치할 수는 있지만 어떻게 다운로드 할 수 있습니까?

mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST

어떤 생각?




하나는 의존성을 사용할 수 있습니다 : copy ( copy ) 이것은 플러그인 설정 섹션에 정의 된 아티팩트의 목록을 가져 와서 지정된 위치에 복사합니다 원하는 경우 이름을 바꾸거나 버전을 제거 할 수 있습니다. 이 목표는 로컬 리포지토리 또는 리액터에 존재하지 않는 원격 리포지토리의 아티팩트를 해결할 수 있습니다.

플러그인의 모든 속성이 maven CLI에서 사용될 수있는 것은 아닙니다. "User Property :"속성이 정의 된 속성을 지정할 수 있습니다. 아래 예제에서 junit을 임시 폴더에 다운로드하고 jar 파일에서 vesion을 제거합니다.

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=junit:junit:4.11 -DoutputDirectory=/tmp -Dmdep.stripVersion=true

where artifact = junit : junit : 4.11은 maven 좌표입니다. 그리고 artifcat을 groupId로 지정합니다. artifactId : version [: packaging [: classifier]]

(처음에는 https://.com/a/18632876/2509415 를 제공 한 Pascal Thivent에게 감사드립니다. 다른 답변을 추가하고 있습니다)




유물 바이너리를 얻는 방법에 관해서는 Pascal Thivent의 대답 이 있지만 유물 소스 항아리를 얻으려면 다음을 사용할 수 있습니다 :

mvn dependency:get -Dartifact=groupId:artifactId:version:jar:sources

mvn dependency:get -Dartifact=junit:junit:4.12:jar:sources

이는 artifact 매개 변수가 실제로 groupId:artifactId:version[:packaging][:classifier] 로 구성되기 때문에 효과가 있습니다. 포장분류기 는 선택 사항입니다.

maven 의존성 플러그인은 패키징sources분류 자로 사용하여 유물 항아리가 아니라 소스 항아리를 요구한다는 것을 이해합니다.

안타깝게도 현재 소스 jar 파일은 일시적으로 다운로드 할 수 없지만 의미가 있습니다. 그러나 이상적으로는 maven Eclipse 플러그인처럼 option downloadSources 도 존중할 수 있다고 생각합니다.




Related



Tags

maven-2