我正在使用Maven 3打包WAR文件,我无法弄清楚如何从生成的最终WAR中排除src/main/webapp
中的文件。 src/main/webapp
中的一个目录是git子模块,我希望将git子模块中的文件(如README,docs /等)排除到我的最终WAR。
我最初的尝试是使用maven-antrun-plugin
删除文件。我尝试了prepare-package
和package
中的删除操作,但都没有奏效。在package
中执行删除操作会从target/<projname>/...
中删除文件,但最终的WAR仍然包含这些文件。使用-debug
运行maven会显示在生成WAR文件后文件被删除。这几乎就像我想要在prepare-package
和package
之间进行删除。
我的下一次尝试是尝试指定要从WAR中排除的文件(下面链接的一些解决方案),但似乎没有任何效果。我可能没有正确指定不需要的文件的路径,我想知道这是否与我的不需要的文件不在src/main/resources
中,而是在src/main/webapp
中。
我尝试了很多解决方案,但似乎没有任何效果。每次我尝试新的东西时,我都会mvn clean
并删除target
目录。最终生成的WAR文件始终包含不需要的文件。
我觉得我的问题的答案存在于我遇到的搜索引擎优化和谷歌搜索中,但我尝试过的任何内容都完全按照我的需要运行。以下是我尝试过的一些解决方案。
答案 0 :(得分:6)
由于文件在webapp
文件夹中,我猜想maven-war-plugin
是最好的起点。资源过滤,将点数排除在src/main/resources
之前,并且不知道webapp
文件夹。
所以http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html
有一个参数:warSourceExcludes
:http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#warSourceExcludes
这应该允许过滤README文件等等。