我目前正试图从我建立的战争中排除一些资源。 我已阅读文档和论坛,并发现了很多信息。
遗憾的是,在我的案例中没有任何作用......
我有一个Eclipse Maven项目,如果我是对的,maven-war-plugin
是默认的" war builder",所以我必须在我的pom.xml中按顺序覆盖它从构建战争中排除资源。
我尝试了warSourceExcludes
,packagingExcludes
和webResources/excludes
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven.war.version}</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warSourceExcludes>src/main/webapp/frontEndWorkspace</warSourceExcludes>
<packagingExcludes>src/main/webapp/frontEndWorkspace
</packagingExcludes>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/webapp</directory>
<!-- the list has a default value of ** -->
<excludes>
<exclude>**/frontEndWorkspace</exclude>
</excludes>
</resource>
</webResources>
</configuration>
</plugin>
尽管有这样的配置,我仍然在我的Tomcat中推送frontEndWorkspace
目录...
我想知道它是否来自我在Eclipse环境中使用它的事实?
提前致谢!
答案 0 :(得分:3)
您可以使用的参数是packagingExcludes
,它更通用(适用于完整的战争结构)或warSourceExcludes
,如果您要排除的文件专门位于参数{定义的文件夹中} {1}}(默认为warSourceDirectory
)(see here)。当你知道它开始考虑战争的文件夹结构时,它很容易。
示例:
这将排除参数${basedir}/src/main/webapp
定义的文件夹*.jsp
中包含的WEB-INF
完成的所有文件(默认为warSourceDirectory
):
${basedir}/src/main/webapp
这将排除战争中包含的所有文件夹<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceExcludes>WEB-INF/**/*.jsp</warSourceExcludes>
</configuration>
</plugin>
中包含的所有文件(但不包括文件夹结构):
pouet
您的配置<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<packagingExcludes>**/pouet/**/*.*</packagingExcludes>
</configuration>
</plugin>
的问题是您从错误的源文件夹开始。您只需删除<warSourceExcludes>src/main/webapp/frontEndWorkspace</warSourceExcludes>
并在src/main/webapp
之后添加/**
即可frontEndWorkspace
工作(或<warSourceExcludes>/frontEndWorkspace/**</warSourceExcludes>
)。
答案 1 :(得分:0)
我在使用Maven 3的Intellij IDEA中发现了同样的问题。
它生成的war文件包含我要排除的目录
的 UPD 强>
解决方法是使用如下语法来消除myFolder目录
details