8

Maven WAR 插件有两个配置选项:warSourceExcludespackagingExcludes. 上有一些文档packagingExcludes,说:

通过使用<packagingIncludes><packagingExcludes>配置参数,可以在 WAR 文件中包含或排除某些文件。

但是,我发现很难找到有关warSourceExcludes.

这两个配置选项有什么区别?

我正在使用 Maven 3.1.1,WAR 插件是 2.4 版

4

2 回答 2

10

warSourceExcludes:复制 warSourceDirectory 内容时要排除的逗号分隔的标记列表。


PackagingExcludes:打包前要从 WAR 中排除的标记的逗号分隔列表。

使用 packagingExcludes,令牌会完全从最终的 war 文件中排除。

使用warSourceExcludes,将war 目录复制到war 文件时,只会忽略标记。

因此,例如,如果令牌存在于 webappDirectory 中,则在使用 warSourceExcludes 时它们不会被忽略,但在使用packagingExcludes 时会被忽略。

于 2014-02-08T03:09:17.353 回答
2

生成最终war文件的主要步骤可以简化为:

  1. Web 资源从${warSourceDirectory}into复制${<webappDirectory>},可以这样处理:

    cp -r src/main/webapp/* target/artifact/
    

    <warSourceExcludes>在此步骤中使用,以便排除的文件不会复制到目标目录中。

  2. 生成的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

于 2019-07-04T10:16:53.453 回答