如何从maven war plugin war文件中排除某些资源?

Gra*_*ray 8 war maven

我们已经使用war:exploded了一段时间,我正试图废除它.我已将以下内容添加到我的pom中:

<resource>
    <directory>src/main/webapp</directory>
</resource>
Run Code Online (Sandbox Code Playgroud)

此份文件,如在src/main/webapp/keystoretarget/classes/keystore,所以我的本地UI发射器的工作原理和看到的一切.得分了!

但是,通过添加到资源列表,这意味着相同的文件也会在war文件中显示为keystore(正确) WEB-INF/classes/keystore(错误).这也意味着有一个WEB-INF/classes/WEB-INF目录(等等).我正在尝试从src/main/webapp资源中排除资源文件,因为src/main/webapp/WEB-INF它已经是资源.

我试图不专门排除keystore和其他文件,因为我们半常常从该列表中添加/删除.我试图将以下(以及许多其他变体)添加到war插件配置中而没有结果:

<webResources>
   <resource>
      <directory>src/main/webapp</directory>
      <excludes>
         <exclude>**</exclude>
      </excludes>
   </resource>
</webResources>
Run Code Online (Sandbox Code Playgroud)

我还阅读了其他一些SO问题,我花了至少一个小时从maven war插件页面阅读文档,并尝试了其他配置但没有成功.

知道我需要做什么魔术吗?提前致谢.

Jig*_*shi 13

你需要

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <packagingExcludes>**/keystore</packagingExcludes>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

另见


小智 5

warSourceExcludes为我工作。例如,要从我的战争中排除js文件夹和scss文件夹,我尝试过...

 <configuration>
   <warSourceExcludes>js/*.*,scss/*.*</warSourceExcludes>      
   <webResources>
     <resource>
     <directory>src/main/webapp</directory>
     <filtering>true</filtering>
        <includes>
            <include>WEB-INF/web.xml</include>
        </includes>
     </resource>
   </webResources>
</configuration>
Run Code Online (Sandbox Code Playgroud)