我有一个 Java Web 应用程序,其中在标准 webapp 源目录(src/main/webapp)
中有一些文件夹,我不想复制到战争中(exploded
或packaged
)。
我不希望复制这些文件的原因之一是我们在爆炸战争中对 .js 和 .css 文件运行 YUI JS 和 CSS 最小化器和压缩器。我要排除的文件在压缩阶段会产生错误。我不希望他们加入战争的另一个原因是他们支持测试存在于 webapp 中的单页 JS 应用程序(它们是依赖于node
/的客户端 JS 测试脚本angular.js
)。
以下是来自的相关部分POM.xml
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>parent-resources</id>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<overlays>
</overlays>
<webappDirectory>${project.build.directory}/${project.build.finalName}-work</webappDirectory>
</configuration>
<phase>generate-sources</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
</plugin>
我曾尝试使用warSourceExcludes
排除某些路径,但没有成功。下面显示了我的使用示例,下面client/
是一个文件夹src/main/webapp
:
<configuration>
...
<warSourceExcludes>
<excludes>
<exclude>
client/
</exclude>
</excludes>
</warSourceExcludes>
...
</configuration>
将 Web 应用程序源目录中的某些路径和/或单个文件排除在爆炸战争中的正确方法是什么?
更新
根据@maba 的建议,我将配置更新如下:
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<overlays>
</overlays>
<webappDirectory>${project.build.directory}/${project.build.finalName}-work</webappDirectory>
<warSourceExcludes>client/</warSourceExcludes>
</configuration>
文件夹 ,client/
仍在被复制。有任何想法吗?