Maven WAR插件有两个配置选项:warSourceExcludes
和packagingExcludes
。 packagingExcludes
上有一些文档,说:
使用
<packagingIncludes>
和<packagingExcludes>
配置参数,可以在WAR文件中包含或排除某些文件。
但是,我发现很难找到有关warSourceExcludes
的信息。
这两个配置选项有什么区别?
我正在使用Maven 3.1.1而WAR插件是版本2.4
答案 0 :(得分:11)
warSourceExcludes:要排除的标记的逗号分隔列表 复制warSourceDirectory的内容时。
packagingExcludes:要排除的标记的逗号分隔列表 来自包装前的WAR。
使用packagingExcludes,令牌完全被排除在最终的war文件之外。
使用warSourceExcludes时,将war目录复制到war文件时会忽略标记。
因此,例如,如果令牌存在于webappDirectory中,则在使用warSourceExcludes时不会忽略它们,但是在使用packagingExcludes时它们将被忽略。
答案 1 :(得分:0)
产生最终战争文件的主要步骤可以简化为:
将网络资源从${warSourceDirectory}
复制到${<webappDirectory>}
,可以将其视为:
cp -r src/main/webapp/* target/artifact/
<warSourceExcludes>
用于此步骤,因此排除的文件不会复制到目标目录中。
产生的战争文件的内容来自${webappDirectory}
,即target/<artifact>
目录,例如:
jar --create --file target/artifact.war -C target/artifact/ WEB-INF ...
这里使用<packagingExcludes>
来确定要从目标目录打包的内容。
请参阅https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html