Maven War插件具有两个配置选项:warSourceExcludes
和packagingExcludes
。packagingExcludes
上有一些文档,说:
使用
<packagingIncludes>
和<packagingExcludes>
配置参数可以包括或排除战争文件中的某些文件。
但是,我发现很难找到有关warSourceExcludes
的信息。
这两个配置选项有什么区别?
我正在使用Maven 3.1.1,而战争插件是2.4
warsourceexcludes:逗号分开的令牌列表,以排除 复制Warsourcedirectory的内容时。
packagingExcludes:逗号分开的令牌列表,以排除 从包装前的战争中。
使用包装量表,令牌被完全排除在最终战争文件中。
使用warsourceexcludes,将战争目录复制到战争档案中时,这些令牌就被忽略了。
结果,如果将令牌存在于WebAppDirectory中,则在使用Warsourceexcludes时不会忽略它们,但会在使用PackagingExcludes时。
产生最终战争文件的过程可以简化为两个主要步骤:
-
Web资源从
${warSourceDirectory}
复制到${<webappDirectory>}
,假设它是target/artifact/
,可以像以下方式一样对待:cp -r src/main/webapp/* target/artifact/
<warSourceExcludes>
在此步骤中使用,因此排除的文件未复制到target/artifact/
。 -
随后将上述步骤的输出目录
target/artifact
(即${webappDirectory}
)用作产生最终战争文件的输入,例如:jar --create --file target/artifact.war -C target/artifact/ WEB-INF ...
使用
<packagingExcludes>
,决定从target/artifact/
收拾什么。
请参阅https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html