2011-11-24 2 views
44

각각 몇 가지 일반적인 기능 또는 적어도 공통적 인 구성/종속성을 가진 여러 Maven 프로젝트가 있습니다. 이것을 공통 pom.xml로 추출한 다음이 퍼머 (POM)에서 상속 한 모듈에서 여러 가지 패싯 (예 : 지속성, 스프링 관련 종속성 등)을 모두 모듈화했습니다.M2E : 버전이 상위 버전과 중복되어 있습니다 - 왜 경고입니까?

"Common"은 버전 1.0.0이고 "ProjectA"는 제가 상속하고 싶습니다. 나는 경고가 나타납니다

버전이 경고 왜 내가 완전히 이해하지 못하는 부모 버전

의 중복입니다. 버전을 상속 받기 위해 프로젝트 POM에서 버전을 생략 할 수있는 옵션이 있다고 생각했습니다. 공통 모듈에 대해서는 공통 파일을 사용합니다. 예를 들어, 공통 스프링은 Spring 응용 프로그램에 대한 공통적 인 종속성을 추가하고 실제로 ProjectA는 실제로 공통 스프링을 상속합니다.

그냥 옵션이 아닌가요? ProjectA 버전을 1.0.1 또는 2.0.0으로 변경하면 문제가 없습니다.

+0

, 난 단지 상속에주의한다 POM과 나는 JAR에 의존한다. 나는 dependencyManagement에서 사용되는 common.version 속성을 선언한다. ProjectA는 common-spring (상속받는)에서 상속 받고 common-io (common에서 상속받는)에 의존하며 모두 동일한 버전이다. –

+0

이 경고는 m2eclipse 또는 Maven 자체에서 발행합니까? ('mvn verify'로 명령 행을 검사 할 수 있습니다. 아마도 Maven이 이와 같은 것을 내뿜는 지 아닌지).'pom.xml '파일을 게시 할 수 있다면 이것 이외에 _ 도움이 될 것입니다. _visualize_ 설정에서 진행되는 일은 어렵습니다. –

+0

그건 공평합니다. 내가 휴가 중이기 때문에 나는 수요일에 이것을 할 것이다 (그래도 그런 휴가는 없다!). 꽤 m2e 경고라고 확신합니다. –

답변

51

그룹 요소와 같은 버전 요소가 때때로 중복 될 수 있고 상위 POM에서 상속 될 수 있으므로 단지 영리해야합니다. 따라서 하위 요소 POM에서이 요소를 제거하는 것이 안전합니다.

하지만 부모 및 자식 프로젝트의 수명주기가 다른 경우와 같이 중복되는 정보가 아닌 경우가 있으며 m2e에서는이 경고를 사용하지 않도록 설정해야합니다. 불행하게도 아직이 작업을 수행 할 수있는 방법은 없습니다 : http://dev.eclipse.org/mhonarc/lists/m2e-users/msg01961.html

UPDATE : 던컨은 최신 버전의 울부 짖는 소리가 말했듯이이 경고를 해제 할 수 있습니다.

2

정말 당신을 귀찮게하면, 손의 일부 교활한 속임수로 경고를이 표시되지 않도록 속성을 사용

<version>${api.version}</version> 
<properties> 
    <api.version>0.0.1-SNAPSHOT</api.version> 
</properties> 

하지만 당신이 정말로 일을 할 것입니다 모든 콘솔 출력에 경고를 이동 :

[WARNING] Some problems were encountered while building the effective model for [project] 
[WARNING] 'version' contains an expression but should be a constant. 
52

최신 버전의 m2e (1.1 이후)를 사용하면이 경고를 비활성화 할 수 있습니다.

환경 설정> Maven은> 경고> 안 함 "버전은 상위 버전의 중복된다"경고

원래 버그 리포트 : 그것은 가치가 무엇인지에 대한 https://bugs.eclipse.org/bugs/show_bug.cgi?id=356796

+2

+1 환경 설정에서 체크 할 수는 있지만, 프로젝트> 메이븐> 프로젝트 업데이트 ...가 없어져야합니다. – slf

+0

@slf 최신 버전의 이클립스에서는 변경하는 즉시 환경 설정에서 Maven의 ** Errors/Warnings ** 설정을 선택하고 "적용"을 클릭하면 지금 프로젝트를 업데이트 할 수있는 팝업 창이 나타납니다. – informatik01

관련 문제