2012-09-07 2 views
1

현재 기존 라이브 시스템을 대체하고 모든 시스템을 최신 상태로 유지하기 위해 새로운 서버를 구축 중입니다. 불행하게도 우리는 스위치가 확정되기 전에 두 시스템을 몇 개월 동안 병행 서비스로 병렬로 실행해야합니다. 이 시간 동안 서버에서 실행되는 응용 프로그램의 개발이 진행됨에 따라 야간 재구성 작업을 수행하게됩니다.Running Maven2 and Maven3

현재 실행중인 문제는 기존 시스템이 Maven 2를 실행하고 있고 새로운 시스템이 Maven 3을 실행하고 있다는 것입니다. 현재 새 서버를 다시 빌드하면 Maven 경고가 생성됩니다 ("[WARNING] 'build.plugins.plugin .version 'for org.codehaus.mojo : versions-maven-plugin is missing ") 응용 프로그램이 빌드되지 않습니다.

모든 경고가 Maven 2 및 Maven 3에서 빌드되도록 이러한 경고를 해결할 수있는 해결책이 있습니까? Subversion 내에서 코드를 분기하는 개발 인프라로 인해 옵션이 아닙니다.

일부 문서를 보면 저장소 정의를 pluginrepository 정의로 옮기는 것이 좋습니다. 리파지토리를 리포지토리에 두는 동안 리포지토리를 플러그인 리포지토리에 추가 할 수 있습니까? 이로 인해 두 버전의 Maven에서 문제가 발생합니까? 아니면 문제에 대한 대체 솔루션이 있습니까?

+1

경고는 빌드를 손상시키지 않습니다. 당신이 뭔가 언급하지 않은 것 같습니다. – kan

+0

@kan이 완전히 사라져서 Maven 플러그인이 빌드를 깨뜨릴 수 있습니다. ANT의 누락 된 태스크와 유사하거나 Make의 명령 행 도구가 없습니다. –

+0

@EdwinBuck 그는 "version tag is missing"이라는 경고에 대해 플러그인이 여기에 있음을 의미하지만 작동하지만 pom.xml은 플러그인 버전을 명시 적으로 지정하지 않으므로 임의의 버전이 사용됩니다. 그리고 그는 그것을 짓지 못한다고 말합니다 - 나는 그것 때문에 일어날 수 있다고 생각하지 않습니다. – kan

답변

0

Maven 3은 이전 버전과 호환되지만 엄격 해 지므로 Maven 3에 대한 pom.xml을 수정하면 Maven 2 지원이 중단되지 않습니다.

필자가 읽은 바로는 명시 적 플러그인 버전 만 사용하면되므로 쉽게 수행 할 수 있습니다. 가장 일반적인 방법은 프로젝트에 공통적 인 상위 POM의 <pluginManagement> 섹션에서 수행하는 것이 가장 좋습니다.

+0

Maven 3가 Paven을 Maven 3 용으로 조정하면 Maven 2 빌드 *가 중단 될 수 있다는 점이 Maven 3에서 충분히 다릅니다. 한 가지 다른 점은 종속성이 해결되는 방식입니다. Maven 2에서 빌드하는 것을 발견했습니다. Maven 3에는 필요없는 여러 종속성을 추가해야했습니다. – Jonathan

+0

다른 문제점은 Maven 3의 스냅 샷 변경 사항의 고유 버전입니다. 필요한 경우 몇 가지 문제점이있을 수 있습니다. 다른 아티팩트에 의해 차례로 사용되는 스 냄샷 아티팩트를 전개하십시오. 나는 왜 그들이 그것을 바꾸 었는지 아직도 알 수 없다. 대부분의 프로젝트에서 여러 빌드를 사용하여 문제가 발생합니다. – Farid