2016-12-16 4 views
1

내 어셈블리 모듈에 종속 파일로 포함 된 WAR 파일이 있습니다. WAR 파일에는 새로 생성 된 WAR 파일에서 제외시킬 몇 가지 속성이 포함되어 있습니다.어셈블리를 사용하여 * .war 파일의 속성 파일 제외

알 수없는 이유로 인해 예외가 작동하지 않습니다. **/*.properties을 사용하여 모든 등록 정보 파일을 제외해도 파일은 제외되지 않습니다. 뭐가 잘못 됐는지 알아?

메이븐 폼은

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>de.mycompanyname.myprojectname</groupId> 
<version>1.0-SNAPSHOT</version> 

<artifactId>demo-dashboard-assembly</artifactId> 
<packaging>pom</packaging> 
<name>demo-dashboard-assembly</name> 

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.5.3</version> 
      <goals></goals> 
      <executions> 
       <execution> 
        <id>delivery-prod</id> 
        <phase>prepare-package</phase> 
        <goals><goal>single</goal></goals> 
        <configuration> 
         <appendAssemblyId>false</appendAssemblyId> 
         <finalName>demo#prod#dashboard</finalName> 
         <descriptors> 
          <descriptor>src/main/assembly/delivery.prod.xml</descriptor> 
         </descriptors> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
    <dependency> 
     <groupId>de.mycompanyname</groupId> 
     <artifactId>myprojectname.dashboard</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <type>war</type> 
    </dependency> 
</dependencies> 

</project> 

delivery.prod.xml는

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> 
<id>delivery</id> 
<formats> 
    <format>dir</format> 
</formats> 
<includeBaseDirectory>false</includeBaseDirectory> 

<dependencySets> 
    <dependencySet> 
     <outputDirectory>/</outputDirectory> 
     <unpack>true</unpack> 
     <excludes> 
      <exclude>WEB-INF/classes/commonDashboard.dev.properties</exclude> 
      <exclude>WEB-INF/classes/commonDashboard.test.properties</exclude> 
      <exclude>WEB-INF/classes/db.dev.properties</exclude> 
      <exclude>WEB-INF/classes/db.test.properties</exclude> 
     </excludes> 
    </dependencySet> 
</dependencySets> 
</assebly> 

답변

1

문제는 you're not using the right <exclude> configuration입니다. <dependencySet> 수준에서 <exclude>을 지정하여

,

<dependencySet> 
    <outputDirectory>/</outputDirectory> 
    <unpack>true</unpack> 
    <excludes> 
    <exclude>WEB-INF/classes/commonDashboard.dev.properties</exclude> 
    <!-- more excludes --> 
    </excludes> 
</dependencySet> 

이 세트에서 제외해야하는 종속성을 지정하고 있습니다. 즉, 여기서 루트 폴더에 압축을 풀지 않아야하는 종속성을 지정하는 것입니다. 분명히 WEB-INF/classes/... 종속성이 없기 때문에 일치하지 않으며 아무 것도 수행하지 않습니다. 사실, 당신이 로그에서 볼 수 있다는 경고를 올릴 것이다 : 당신이 대신 원하는 것은

[WARNING] The following patterns were never triggered in this artifact exclusion filter: 
o 'WEB-INF/classes/commonDashboard.dev.properties' 
o 'WEB-INF/classes/commonDashboard.test.properties' 
o 'WEB-INF/classes/db.dev.properties' 
o 'WEB-INF/classes/db.test.properties' 

는 압축이 해제 종속성 내에서 파일을 제외하는 것입니다. 이를 위해서는 제외 구성을 포함하는

아카이브에서 추출한 항목을 포함/제외/필터링하는 옵션을 지정합니다.

<dependencySets> 
    <dependencySet> 
    <outputDirectory>/</outputDirectory> 
    <unpack>true</unpack> 
    <unpackOptions> 
     <excludes> 
     <exclude>WEB-INF/classes/commonDashboard.dev.properties</exclude> 
     <exclude>WEB-INF/classes/commonDashboard.test.properties</exclude> 
     <exclude>WEB-INF/classes/db.dev.properties</exclude> 
     <exclude>WEB-INF/classes/db.test.properties</exclude> 
     </excludes> 
    </unpackOptions> 
    </dependencySet> 
</dependencySets> 

이 올바르게 각 의존성의 압축을 푸는 동안 선택된 파일을 제외하고, 결과 어셈블리가 없습니다 : 이와 같이

(2.2 베타 1 이후), 대신해야 그들. 각 파일을 지정하는 대신 use a regular expression을 사용할 수 있습니다. 예 :

<exclude>%regex[WEB-INF\/classes\/(commonDashboard|db)\.(dev|test)\.properties]</exclude> 
+0

이 옵션을 알지 못했습니다. 설명 주셔서 감사합니다! – KayJ