2012-03-02 2 views
2

저장소 중 하나가 일시적으로 사용할 수 없습니다와 같은 경고의 원인이되는 것 같습니다 : 나는 내 응용 프로그램의 POM 파일에 그 저장소를 참조하지 않는메이븐 저장소 URL이 시간 초과되고 빌드 영원히 취하고있다

[WARNING] Could not transfer metadata org.gbif:gbif-common:0.5-SNAPSHOT/maven-metadata.xml 
from/to eclipselink (http://ftp.ing.umu.se/mirror/eclipse/rt/eclipselink/maven.repo): 
Error transferring file: Operation timed out 

을하지만, 다운 라인 저장소 또는 종속 프로젝트 (?)에서 오는 것입니다. 브라우저에서 URL http://ftp.ing.umu.se을 누르면 회전 진행률 표시 줄이 나타나고 결국 브라우저에 "연결할 수 없습니다 ..."메시지가 나타납니다.

문제는 모든 이슈에 대해 해당 URL을 시도하고 75 초 후에 시간 초과 된 다음 계속됩니다. 따라서 나의 건축은 영원히 (한시간 넘게 세고있다) 가져 가고있다.

리포 지 토리를 확인하거나 제한 시간을 줄이기위한 방법이 있습니까? 지금까지는 인터넷 검색을 사용하지 않았습니다.

편집 : 실행 받는다는는 mvn clean package -DskipTests=true

+0

저장소가 .m2/settings.xml에 포함될 수 있습니까? 확인할 가치가있다. – yorkw

+0

제안 해 주셔서 감사합니다. - 내 .m2/settings.xml 파일에만 자체 리포지토리가 있습니다. – nickdos

답변

3

대로 알려진 좋은 저장소에 요청을 리디렉션하는 repository mirror를 사용할 수 있습니다. 실제로 pom 파일에 선언 된 임의의 저장소에서 코드를 가져 오지 못하도록 선택한 전역 저장소 "*"를 저장소에 설치하는 것이 좋습니다. ~/.m2/Settings.XML의에 대한

예 :이 예에서

<settings> 
    ... 
    <mirrors> 
    <mirror> 
     <id>global</id> 
     <name>Maven Central</name> 
     <url>http://repo1.maven.org/maven2</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 

내가 대상으로 메이븐 중앙을 사용하고 있지만 이러한 개인 저장소로 어디서든 당신이 원하는 요청을 리디렉션 할 수 있습니다. 둘 이상의 Repo에서 코드를 가져와야하는 경우 "!"를 사용하여 예외를 만들 수 있습니다. 그런 다음 해당 설정에서 선언 한 repo id를 선택합니다.

... 
<mirrorOf>*, !otherRepo</mirrorOf> 
... 

이렇게하면 'otherRepo'에 대한 요청이 미러 대상으로 리디렉션되지 않습니다.

물론이 크키 성 저장소에 저장된 아티팩트가 필요하다면 여전히 운이 좋지 않을 것입니다.

+0

그것이 효과가있는 것처럼 보입니다. 비록 우리 자신의 의존성 (public이 아님)을 찾을 수 없기 때문에 ' *'을 사용할 수는 없지만 우리 자신의 repo에는 많은 공개 아티팩트가 없었던 것처럼 보입니다. 하지만 ' eclipselink'을 사용했으며 더 이상 시간을 초과하지 않습니다. – nickdos

관련 문제