2013-06-19 2 views
1

을 제외 무시 클래스를 포함 나는 다음과 같은 치어 내 .class 파일 내 WEB-INF/classes 폴더에없는 동안메이븐 전쟁 포장, 자원

<project> 

    .... 
    <packaging>war</packaging> 
    .... 
    <build> 
     <plugins> 
      <plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <excludes> 
        <exclude>config/**/*</exclude> 
       </excludes> 
      </configuration> 
     </plugin> 

     <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
     <archiveClasses>true</archiveClasses> 
        <warSourceExcludes>WEB-INF/sass/**</warSourceExcludes> 
        <attachClasses>true</attachClasses> 
        <webResources> 
         <resource> 

          <directory>src/main/resources/config</directory> 

          <excludes> 
           <exclude>**/*</exclude> 
          </excludes> 
         </resource> 
        </webResources> 
    </configuration> 
    </plugin> 
... 
</project> 

당신이 볼 수 있듯이, 나는 WAR 패키지가 - 그들은 JAR로 포장되어에게 대신.

이제 JAR에서 일부 리소스를 제외하려고 필사적으로 노력하고 있지만 작동하지 않습니다. mvn jar:jar을 실행하면 리소스가 제외되지만 리소스가있는 mvn package을 실행하면 리소스가 제외됩니다.

도와주세요.

답변

0

수명주기 단계에 바인딩 된 jar:jar 목표가 없습니다. 명령 줄에서 jar:jar을 실행하면 예외가 발생합니다. mvn clean package을 실행할 때 jar:jar이 (가) 실행되고 있지 않습니다. 위상에 목표를 결합하십시오 :

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <executions> 
     <execution> 
     <goals><goal>jar</goal></goals> 
     <phase>prepare-package</phase> 
     <configuration> 
      <excludes> 
       <exclude>config/**/*</exclude> 
      </excludes> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 

참고는 war:war plugin goalarchiveClasses 기능은 당신이 별도의 플러그인 설정을 할 필요없이 달성하기 위해 노력하고 생각하는 것과 유사한 무언가를.

1

@ user944849가 맞는 것 같습니다. 실제로 JAR 패키징을 달성하기 위해 전쟁 플러그인은 jar 플러그인을 사용하지 않습니다.

그러나 그의 대답은 나에게 잘못된 결과를주었습니다. 단지 2 개의 병을 만들뿐입니다. 하나는 자원과 함께 있고 다른 하나는없는 것입니다. WAR는 여전히 잘못된 것을 사용합니다.

정답은 새 메이븐 resources 태그를 사용하는 것입니다.

<build> 
     .... 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <excludes> 
        <exclude>config/**/*</exclude> 
       </excludes> 
       <filtering>false</filtering> 
      </resource> 
     </resources> 
     .... 
    </build> 
를 다음과 같이 내 구성이 보인다에 해당하는 하나
관련 문제