Maven pom을 사용하여 jar 파일을 특정 디렉토리에만 다운로드하는 방법은 무엇입니까?


78

pom.xml 파일에서 Java의 지정된 폴더로 종속성을 다운로드하는 방법이 있습니까? Java에서 maven 명령을 실행할 수 있고 다운로드 메시지가 있지만 maven이 이러한 라이브러리를 어디에 저장하는지 모르겠습니다. 이러한 종속성을 특정 폴더에 다운로드하려면 어떻게해야합니까?

답변:


115

maven의 종속성 플러그인, 특히 목표를 살펴보십시오 . 사용 부분은 정확하게 당신이 원하는 일을하는 방법을 설명합니다. copy-dependencies

명령 줄에서 수행하려면 다음을 수행하십시오.

$ mvn dependency:copy-dependencies -DoutputDirectory=OUTPUT_DIR

이 방법에서 이상한 문제가 발생했습니다. 주 종속성에 대한 .pom 파일을 다운로드했지만 하위 종속성 (전이 종속성)에 대해 적절한 jar를 다운로드했습니다. 내가 뭘 잘못하고 있니?
jmng

참고 Windows에서 사용mvn dependency:copy-dependencies "-DoutputDirectory=OUTPUT_DIR"
AndrWeisR

11

여기 에 설명 된대로 maven-dependency-plugin : get 을 사용할 수 있습니다 .

예를 들어, org.apache.hive:hive-common:2.1.1로컬 폴더 에 다운로드 하려면 다음을 실행하십시오.

mvn dependency:get -Ddest=./ -Dartifact=org.apache.hive:hive-common:2.1.1

스냅 샷 저장소 에서 의 최신 3.0.0-SNAPSHOT:tar.gz버전 을 다운로드 하려면 다음을 실행하십시오.com.orientechnologies:orientdb-community-gremlinhttps://oss.sonatype.org/content/repositories/snapshots

mvn dependency:get -Ddest=./ -DremoteRepositories=sonatype-nexus-snapshots::::https://oss.sonatype.org/content/repositories/snapshots -Dartifact=com.orientechnologies:orientdb-community-gremlin:3.0.0-SNAPSHOT:tar.gz

-Dartifact=org.apache.hive:hive-common:LASTEST최신 버전을 얻기 위해 사용할 수 있습니다 .
Matthieu

[경고] 목적지 / 목적지 매개 변수는 더 이상 사용되지 않습니다. 향후 버전에서는 사라집니다.
Artem Yakovlev

6

pom.xml에 다음과 유사한 내용을 추가합니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <configuration>
        <outputDirectory>
            ${project.build.directory}
        </outputDirectory>
    </configuration>
</plugin>

그런 다음 실행 mvn clean dependency:copy-dependencies하여 복사를 수행하십시오. 이것을 어셈블리 플러그인 과 결합하면 배포를 위해 모든 것을 자체 포함 된 아카이브로 패키징 할 수 있습니다.


지역 도서관을 만들기 ${project.build.directory}위해 main\java\resources\libs로 변경 했습니다 . 감사! 참고 : 여기서 내 경로는 usr.dir(프로젝트 루트)에 상대적 이지만 C:\Mydir. 큰!
WesternGun

2
  1. 이 사이트로 이동 : http://jar-download.com/online-maven-download-tool.php

  2. Maven 종속성 XML 삽입

  3. jar 파일을 ZIP으로 다운로드합니다.


11
.jars를 제 3 자 (제 4 자?) 사이트를 통해 다운로드하지 않겠습니다. 누가 그 밖에 추가 한 내용이나 아카이브 (멀웨어)를 수정하는 방법을 알고 있습니까? sblundy는보다 직접적인 답변을 제공했습니다.
try-catch-finally

1

Maven은이 모든 것을 로컬 Maven2 저장소에 저장합니다. 기본적으로 저장소라는 디렉토리 아래의 사용자 홈 디렉토리에 저장됩니다.

복사라는 maven-dependency-plugin의 목표를 사용하여 프로젝트의 모든 종속성을 가져 와서 폴더에 넣을 수 있습니다.

http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html


2
Java에서 pom.xml을 작성하지 않고 종속성을 복사하는 다른 방법이 있습니까?
Feras Odeh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.