Maven从最终WAR中排除文件

时间:2012-07-30 16:02:38

标签: maven war

我正在使用Maven 3打包WAR文件,我无法弄清楚如何从生成的最终WAR中排除src/main/webapp中的文件。 src/main/webapp中的一个目录是git子模块,我希望将git子模块中的文件(如README,docs /等)排除到我的最终WAR。

我最初的尝试是使用maven-antrun-plugin删除文件。我尝试了prepare-packagepackage中的删除操作,但都没有奏效。在package中执行删除操作会从target/<projname>/...中删除文件,但最终的WAR仍然包含这些文件。使用-debug运行maven会显示在生成WAR文件后文件被删除。这几乎就像我想要在prepare-packagepackage之间进行删除。

我的下一次尝试是尝试指定要从WAR中排除的文件(下面链接的一些解决方案),但似乎没有任何效果。我可能没有正确指定不需要的文件的路径,我想知道这是否与我的不需要的文件不在src/main/resources中,而是在src/main/webapp中。

我尝试了很多解决方案,但似乎没有任何效果。每次我尝试新的东西时,我都会mvn clean并删除target目录。最终生成的WAR文件始终包含不需要的文件。

我觉得我的问题的答案存在于我遇到的搜索引擎优化和谷歌搜索中,但我尝试过的任何内容都完全按照我的需要运行。以下是我尝试过的一些解决方案。

1 个答案:

答案 0 :(得分:6)

由于文件在webapp文件夹中,我猜想maven-war-plugin是最好的起点。资源过滤,将点数排除在src/main/resources之前,并且不知道webapp文件夹。

所以http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html

有一个参数:warSourceExcludeshttp://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#warSourceExcludes

这应该允许过滤README文件等等。