[maven-2] 원격 maven2 아티팩트를 로컬 저장소에 다운로드하는 간단한 명령 줄?

maven 2를 사용하여 배포하는 라이브러리가 있습니다.이 라이브러리의 일반적인 사용자는 응용 프로그램을 빌드하는 데 maven을 사용하지 않지만 maven에 다소 익숙하고 설치했을 가능성이 높습니다.

~/.m2/repositorypom.xml을 설정하지 않고도 내 라이브러리의 아티팩트를 로컬로 다운로드하는 데 사용할 수있는 “간단한”한 줄 명령을 문서화하고 싶습니다 .

이 작업을 수행하는 방법이 있다고 생각했지만 install:install-filedependency플러그인 문서를 살펴본 후 찾을 수없는 것 같습니다 . 나는 다음과 같은 것을 시도했다.

mvn install:install-file -DrepositoryId=java.net -Durl=http://download.java.net/maven/2/ -Dfile=robo-guice-0.4-20091121.174618-1.jar -DpomFile=robo-guice-0.4-20091121.174618-1.pom -DgroupId=robo-guice -DartifactId=robo-guice -Dversion=0.4-SNAPSHOT -Dpackaging=jar

하지만 원격 아티팩트를 로컬 저장소에 다운로드하는 대신 설치 플러그인이 로컬 저장소에 로컬 저장소에 복사하는 데 사용되는 것처럼 보이기 때문에 잘못된 트리를 짖는 것 같습니다.

이것은 제가 설치하고 싶은 아티팩트입니다 : http://download.java.net/maven/2/robo-guice/robo-guice/0.4-SNAPSHOT/

Maven을 사용하여 가능합니까?



답변

의 버전 2.1 이후 메이븐 종속성 플러그인 하는이 가져 오기 : 의존성 이 목적을 위해 목표. 올바른 버전의 플러그인을 사용하고 있는지 확인하려면 “정규화 된 이름”을 사용해야합니다.

mvn org.apache.maven.plugins : maven-dependency-plugin : 2.1 : get \
    -DrepoUrl = http : //download.java.net/maven/2/ \
    -Dartifact = robo-guice : robo-guice : 0.4-SNAPSHOT


답변

종속성 및 실행 지침으로 나열된 이러한 jar를 사용하여 간단한 pom을 제공하십시오.

mvn dependency:go-offline

그러면 종속성이 로컬 저장소로 가져옵니다.

보다 직접적인 솔루션은 dependency : get 이지만 입력 할 인수가 많습니다.

mvn dependency:get -DrepoUrl=something -Dartifact=group:artifact:version


답변

Maven 종속성 플러그인 버전 2.4 부터는 -Ddest 플래그를 사용하여 아티팩트의 대상 대상을 정의 할 수도 있습니다. 대상 아티팩트의 파일 이름 (디렉토리가 아님)을 가리켜 야합니다. 사용할 수있는 추가 매개 변수 는 매개 변수 페이지 를 참조하십시오.

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get \
    -DremoteRepositories=http://download.java.net/maven/2 \
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT \
    -Ddest=c:\temp\robo-guice.jar


답변