Maven WAR 插件有两个配置选项:warSourceExcludes
和packagingExcludes
. 上有一些文档packagingExcludes
,说:
通过使用
<packagingIncludes>
和<packagingExcludes>
配置参数,可以在 WAR 文件中包含或排除某些文件。
但是,我发现很难找到有关warSourceExcludes
.
这两个配置选项有什么区别?
我正在使用 Maven 3.1.1,WAR 插件是 2.4 版
Maven WAR 插件有两个配置选项:warSourceExcludes
和packagingExcludes
. 上有一些文档packagingExcludes
,说:
通过使用
<packagingIncludes>
和<packagingExcludes>
配置参数,可以在 WAR 文件中包含或排除某些文件。
但是,我发现很难找到有关warSourceExcludes
.
这两个配置选项有什么区别?
我正在使用 Maven 3.1.1,WAR 插件是 2.4 版
warSourceExcludes:复制 warSourceDirectory 内容时要排除的逗号分隔的标记列表。
PackagingExcludes:打包前要从 WAR 中排除的标记的逗号分隔列表。
使用 packagingExcludes,令牌会完全从最终的 war 文件中排除。
使用warSourceExcludes,将war 目录复制到war 文件时,只会忽略标记。
因此,例如,如果令牌存在于 webappDirectory 中,则在使用 warSourceExcludes 时它们不会被忽略,但在使用packagingExcludes 时会被忽略。
生成最终war文件的主要步骤可以简化为:
Web 资源从${warSourceDirectory}
into复制${<webappDirectory>}
,可以这样处理:
cp -r src/main/webapp/* target/artifact/
<warSourceExcludes>
在此步骤中使用,以便排除的文件不会复制到目标目录中。
生成的war文件的内容来自于${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