2013-08-09 1 views
1

저는 프로젝트가 있는데, 그 프로젝트는 pom.xml이며 외부의 많은 의존성에 의존합니다.종속성을 로컬 리포지토리에 다운로드하지만 하나만 "대상 지정"하지 않습니다.

그래서 저는 의존하는 모든 의존성을 "로컬 저장소"에 다운로드하려고합니다.

내 시도이다 (I 컴파일 할 필요가 없습니다, 그래서 결국 "대상"폴더 가지고 그래서 기대하지 않는거야 여기서 "확인"를 사용합니다.) :

mvn validate -Dmaven.repo.local=C:\my\.m2\repository dependency:copy-dependencies 

에서 이러한 것과 같은, C:\projects\myProject\java\trunk\target\dependency : - 말은 예 나는 많은 종속성 "C:\my\.m2\repository"에 다운로드되었지만, 그들 중 일부는 갔다

junit-4.8.1.jar 
log4j-1.2.8.jar 
mockito-all-1.8.2.jar 

질문은 다음과 같습니다 방법 사람들은 "C:\my\.m2\repository"하지만로 다운로드 할 수 있도록 내 프로젝트의 "target"으로?

지금까지는 로컬 토폴로지에서 "junit-4.8.1.jar"를 찾으려고하기 때문에 의존성이있는 다른 프로젝트가 빌드 중에 실패합니다.

또 다른 시도 :

mvn validate -Dmaven.repo.local=C:\my\.m2\repository dependency:resolve 

그런 다음 그 의존성은 전혀 확인할 수 없습니다.

프로젝트 즐 - 즐 스냅 샷에 대한 종속성을 확인할 수 없습니다 다음 다음 유물을 확인할 수 없습니다 : 평민 - 랭 : 평민 - 랭 : 항아리 : 2.4, log4j에 : log4j에 : 항아리 : 1.2.8, 의 JUnit : JUnit을 : 항아리 : 4.8.1 : 유물 평민 - 랭을 찾을 수 없습니다 : 평민 - 랭 : 항아리 : 2.4 - 당신이 목표 의존성을 호출하기 때문에> [도움말 1]

+0

왜이 용도로 특별 리포를 지정해야합니까? "~/.m2/repository"의 표준 Maven 저장소가 아닌 이유는 무엇입니까? (~은 Windows 또는 Linux 여부에 상관없이 사용자 홈 폴더라고 말합니다.) –

+0

나는 대답을 찾았습니다. "마침내 모든 것을 다운로드 할 때까지"종속성 : 해결 "을 반복해야합니다. 아마 원격 Repo가 안정적이지 않습니다. 확실하지 않습니다. 어쨌든이 작업을 자동으로 수행하는 스크립트를 만들었습니다. 다운로드를 반복하고 시도 간격을 늘립니다. – ses

+1

@LeeMeador 정상적인 repo를 사용/재생하고 싶지 않기 때문에. 빈 레포를 가지고있을 때 나는 여전히 오프라인에서 애플리케이션을 빌드해야하는 모든 종속성을 얻을 수 있다는 것을 테스트합니다. 오프라인 테스트의 종류. – ses

답변

1

Maven은 있다고했다 : 사본 의존성. 정말 지역의 repo로하지 않았다 이러한 종속성을 상상할 수 없다 http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html

보기는

${project.build.directory}/dependency 

현재 모듈의 종속성을 복사합니다. 스크립트로 둘러 보면서 문제를 해결하지 못할 수도 있습니다. 시도해보십시오.

mvn process-resources -U -Dmaven.repo.local=C:\my\.m2\repository 

-U 옵션은 모든 종속성을 강제로 다운로드합니다. validate도 이해해야하지만, process-resources을 사용하는 것이 좋습니다.

관련 문제