2011-08-30 2 views
0

Maven, Eclipse, WTP로 다중 모듈 환경을 설정했습니다. 내가 설치 이클립스 플러그인은 다음과 같습니다Maven을 피하는 방법 WTP 지원 프로젝트는 자동으로 web.xml을 생성합니까?

  • m2e

  • m2e-엑스트라

  • m2e 오버레이

나는 전쟁 모듈이 (W2)는 다른 전쟁 모듈 (w1)에 의존하며, w1은 web.xm 파일을 가지고 있고, w2는 자신이 없기 때문에 w1의 overlay web.xml을 사용합니다. maven -> Update project configuration을 클릭 할 때마다 eclipse는 자동으로 w2 용 빈 web.xml을 생성합니다. 실제로는 원하지 않습니다.

어떻게 비활성화 할 수 있습니까?

답변

1

기본적으로 m2e-wtp는 이 존재하지 않으면 웹 페이지를 생성하지 않도록 지정하고 기본적으로 동적 웹 패싯 2.5를 추가합니다 (클래스 경로에 일부 JavaEE 6 종속성이있는 경우 3.0). WTP가 web.xml을 생성하는 유일한 이유는 패싯 버전 < = 2.4를 설치하도록 요청한 경우입니다. 그러나 이러한 패싯은 기존 web.xml에서만 유추 할 수 있습니다. 아이러니 보이지?

그래서 당신이 무엇을보고는 대부분 버그 당신은 당신이 m2e-WTP 0.14의 dev에 빌드를 사용하려고 할 수 있습니다 그 동안 https://issues.sonatype.org/browse/MECLIPSEWTP

에 부착 된 샘플 프로젝트와 버그 리포트를 생성 할 수 있습니다 .0, http://download.jboss.org/jbosstools/builds/staging/m2eclipse-wtp-e37/all/repo/에서 사용할 수 있습니다. 최근에 동적 패싯 버전 변경이 처리되는 방식을 변경했습니다.

첫 번째 답글에 설명 된 오버레이 제외 구성의 경우 w1의 web.xml을 제외하고 제외하고 싶으므로 작동하지 않습니다. 다음과 같이 오버레이 순서를 뒤집을 수 있습니다.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
    <overlays> 
     <overlay> 
     <groupId>foo.bar</groupId> 
     <artifactId>w1</artifactId> 
     </overlay> 
     <overlay> 
     <!-- this is the current w2, 
       it's resources will be overridden by w1 
      --> 
     </overlay> 
    </overlays> 
    </configuration> 
</plugin> 
1

당신이 할 수있는 것은 - 명시 적으로 제외 종속 모듈의 web.xml 및 포장 동안, 그것은 부모의 전쟁에서 XML을 선택합니다 :

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <configuration> 
     <overlays> 
     <!-- Overlay w2 WAR with w1 specific web.xml --> 
      <overlay> 
      <groupId>xyz</groupId> 
      <artifactId>w1</artifactId> 
      <excludes> 
       <exclude>WEB-INF/web.xml</exclude> 
      </excludes> 
      </overlay> 
     </overlays> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

건배!

관련 문제