2012-09-19 2 views
1

다양한 제안을 살펴본 후에도 귀 파일에 대한 성공적인 전략은 아직없는 것 같습니다.메이븐 귀 포장, 건물 의존 프로젝트에 대한 전략

나는이 구조를 가지고 :

부모의 pom.xml : ...

<modules> 
     <module>MyProject-ear</module> 
     <module>MyProject-ejb</module> 
     <module>MyProject-war</module> 
    </modules> 

내가 maven-을 사용하고

(EJB/전쟁/귀 부모로서이 있습니다) war-plugin/maven-ejb-plugin/maven-ear-plugin.

EAR 모듈은 종속성으로 ejb/war 프로젝트를 갖습니다.

이제 내 귀를 만들고 싶다면 전쟁을 먼저 만들어야합니다. 그렇지 않으면 최신 버전이 아닙니다.

더 좋은 방법이 있습니까?

편집 : 참고로, 그냥 "실행"을 클릭하여 내 프로젝트를 실행하려면 작업 솔루션을하는 넷빈즈 버그를 열 : http://netbeans.org/bugzilla/show_bug.cgi?id=218807 잘 보이는

+0

모듈 순서가 올바르지 않습니다. 전쟁 모듈을 위에 놓으십시오. 그래서 그것은 목록에있는 마지막 것이어야하는 귀 모듈보다 먼저 빌드됩니다. 그런 다음 부모를 구성하면 귀 파일이 정확합니다. 귀 모듈 만 만들면 최신 .war 종속성이없는 문제가 발생할 것입니다. – wemu

+0

@wemu 모듈의 순서는 빌드 순서를 결정할 다른 방법이없는 경우에만 관련이 있습니다. 그의 예에서 귀는 올바른 빌드 순서를 초래할 전쟁에 의존합니다. http://maven.apache.org/guides/mini/guide-multiple-modules.html – maba

+1

나는 그렇게 생각하지 않는다. 귀 모듈은 종속성을보고 로컬 저장소에서 해결 한 다음 원격으로 해결하려고합니다. 종속성은 모듈이 빌드되는 위치를 알려주지 않습니다. .war가 최신 상태인지 확인하는 CI 빌드가 있으면 문제가되지는 않지만 모듈 빌드 순서를 뒤집 지 않을 것입니다. 링크 상태가 전적으로 사실이라는 것을 믿기에는 너무 자주이 동작을 보았습니다. 미안보다 더 안전 할 것입니다. – wemu

답변

0

. 나는 같은 레이아웃을 사용한다.

건물을 짓기 위해서는 꼭대기에 위치해야하고 mvn install을 실행해야합니다. 계층 구조를 아래로 이동하여 war을 먼저 작성할 필요는 없습니다.

+0

Netbeans에서는 프로젝트를 실행하기 위해 EAR 모듈을 선택하여 실행합니다. 그것이 최신인지 확인하기 위해, 나는 항상 전쟁 (또는 부모)을 먼저 만들어야 만하고, 나는 그것을 좋아하지 않습니다. 넷빈즈는 내가 귀 모듈을 선택하게하는 데있어서 잘못입니다. 그렇다면 버그를 제기 할 것입니다. 또는 @ wemu의 선언 순서에 대한 주석이 옳다. 나는 쉽게 수정할 수있다. – ymajoros

+0

@ymajoros 다음은 메이븐 리액터 빌드에 대한 요약입니다. http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-advanced-reactor-options/ – maba

+0

그래,하지만 내 귀에있는 프로젝트에서 Netbeans에서 "달리다"를 칠 수 있기를 원합니다. 이전에 부모님을 키우지 않고도 작업 할 수 있기를 바랍니다. 이게 가능하지 않니? – ymajoros

관련 문제