2016-12-15 3 views
1

내 프로젝트에서 전쟁 오버레이를 사용합니다. src/main/resources의 1 차전에서 나는 my-file.txt 파일을 가지고있다. 두 번째 전쟁은 첫 번째 전쟁에 달려 있습니다.전쟁이 maven-jetty-plugin으로 실행될 때 오버레이가 클래스 패스에 중복됩니다.

Enumeration<URL> urls = MyListener.class.getClassLoader().getResources("my-file.txt"); 
while (urls.hasMoreElements()) { 
    System.out.println("This is my resource:" + urls.nextElement()); 
} 

내 출력은 (mvn jetty:run) : 이것은 내 자원

: 항아리 : 파일 :/C :/사용자/michaldo/ 두 번째 전쟁은 클래스 패스에 my-file.txt에 대한 조회 할 수있는 코드가 .m2/repository/war-plus-war/war1/0.0.1-SNAPSHOT/war1-0.0.1-SNAPSHOT-classes.jar! /my-file.txt

이것은 내 리소스입니다. jar : file : /C:/Users/michaldo/workspace-n1/war-plus-war/war2/target/tmp/war1-0_0_1-SNAPSHOT_war1/WEB-INF/lib/war1-0.0.1-SNAPSHOT.jar!/my-file .txt

maven jetty plugin을 구성하고 중복을 피할 수 있습니까?

내 받는다는 전쟁 - 플러그인 구성 (부두는 기본 구성이) :

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>3.0.0</version> 
    <configuration> 
     <archiveClasses>true</archiveClasses> 
     <attachClasses>true</attachClasses> 
     <dependentWarExcludes> 
      WEB-INF/lib/*-*.jar 
     </dependentWarExcludes> 
    </configuration> 
</plugin> 

답변

0

문제는 dependentWarExcludes가되지 않는 (심지어 받는다는 전쟁 - 플러그인에서 지원되지 않는 것입니다 3.0

메이븐 부두 플러그인을 오버레이로 제외 할 때 예상대로 작동 config :

<build><plugins><plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
    <overlays> 
     <overlay> 
     <groupId>war-plus-war</groupId> 
      <artifactId>war1</artifactId> 
      <excludes><exclude> 
       WEB-INF/lib/*-*.jar 
      </exclude></excludes> 
     </overlay> 
    </overlays> 
    </configuration> 
</plugin></plugins></build>