2009-08-07 3 views
3

저는 Continuous Integration 환경에서 작업하고 있으며 자동화 된 빌드 프로세스의 일부에는 Maven에서 관리하는 프로젝트가 포함되어 있습니다.Maven 빌드를 네트워크 연결과 독립적으로 만들 수있는 방법이 있습니까?

내가 알고 싶은 것은 Maven을 네트워크 연결로부터 독립적으로 만들 수있는 방법이 있는지입니다.

현재 우리는 저장소에 설치해야하는 모든 jar 파일을 가지고 있지만 문제는 Maven이 플러그인 업데이트를 확인하려고 시도하기 때문에 결국 연결이 끊어지면 빌드가 실패하게됩니다.

답변

5

.

종속성이나 플러그인 업데이트를 확인해야하는 경우 Maven이 오프라인으로 실행될 때 빌드가 실패 할 수 있음을 지적 할 가치가 있습니다. <updatePolicy>이 아닌 저장소를 </updatePolicy >으로 설정하면이를 피할 수 있지만 주기적으로 (-U 및/또는 -cpu를 사용하여) 업데이트해야합니다.

리포지토리 관리자를 사용하는 경우 리포지토리를 외부 리포지토리의 미러로 설정할 수 있습니다. 이것은 여전히 ​​네트워크 연결을 포함하지만 내부 네트워크 만 포함합니다 (또는 저장소 관리자가 로컬 시스템에 있으면 연결이 전혀 필요하지 않음).

이 설정은 내 개발 상자에서 실행 내 로컬 Nexus 서버에 중앙에 대한 모든 호출을 리디렉션 예를 들어

:

<mirrors> 
    <mirror> 
    <id>central-proxy</id> 
    <mirrorOf>central</mirrorOf> 
    <url>http://localhost/nexus/content/groups/public</url> 
    </mirror> 
</mirrors> 
+0

Nexus는 http://nexus.sonatype.org/에서 찾을 수 있습니다. 설치 및 설정이 간편합니다. – extraneon

+0

솔루션이 필요한 것 같습니다. 누군가 작동하는지 테스트 할 수있는 방법을 알고 있습니까? –

+1

당신은 수동으로 maven-metadata- [repository] .xml 파일을 편집하여 로컬 저장소의 이슈가 범위를 벗어날 수 있습니다. updatePolicy를 * daily *로 설정하고 날짜를 2 일 전에 변경 한 다음 해당 이슈에 따라 빌드를 실행하면 해당하는 저장소의 업데이트를 확인해야합니다. –

3

사용 당신은 -o 스위치 또는 > 당신의 Settings.XML의에 < 오프라인 > 사실 < 오프라인을 추가하여 오프라인으로 실행할 수 있습니다 중 하나 -o (오프라인) 옵션

0

로컬 당신을 Archiva 같은 "빌드 아티팩트 저장소 관리자"(http://archiva.apache.org/)를 설치 시도 할 수 있습니다 회로망. maven이 미러 서버로 작동하므로 maven은 인터넷이 아닌 로컬 네트워크에서 업데이트를 다운로드하고 확인하려고 시도합니다. Uou는 또한 자신의 유물을 건축하고 archiva에 사용해야합니다.

관련 문제