Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven War插件中的过滤_Java_Maven_Maven War Plugin - Fatal编程技术网

Java Maven War插件中的过滤

Java Maven War插件中的过滤,java,maven,maven-war-plugin,Java,Maven,Maven War Plugin,我不了解maven war插件的以下过滤器配置。谁能给我解释一下,他们在干什么?我已经用第一个示例和第二个示例标记了代码 <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <!--First

我不了解maven war插件的以下过滤器配置。谁能给我解释一下,他们在干什么?我已经用第一个示例和第二个示例标记了代码

    <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webResources>
                    <!--First Example-->
                    <resource>
                        <directory>/src/main/webapp</directory>
                        <filtering>true</filtering>
                        <includes>
                            <include>**/*.xml</include>
                            <include>**/*.xhtml</include>
                        </includes>
                    </resource>
                    <!--Second Example-->  
                    <resource>
                        <directory>${basedir}/src/main/webapp</directory>
                        <filtering>false</filtering>
                        <excludes>
                            <exclude>**/*.xml</exclude>
                            <exclude>**/*.xhtml</exclude>
                        </excludes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

maven战争插件
/src/main/webapp
真的
**/*.xml
**/*.xhtml
${basedir}/src/main/webapp
假的
**/*.xml
**/*.xhtml

war插件配置中的筛选用于包括/排除所选目录/文件。 给定的配置如下所示:

<resource>
    <directory>/src/main/webapp</directory>
    <filtering>true</filtering>
    <includes>
         <include>**/*.xml</include>
         <include>**/*.xhtml</include>
    </includes>
</resource>

/src/main/webapp
真的
**/*.xml
**/*.xhtml
上面配置的筛选将/src/main/webapp设置为根目录 有一个称为筛选的标志,用于启用/禁用筛选

<include>**/*.xml</include>
***.xml
表示将包括根目录(/src/main/webapp)的任何子目录中的所有.xml文件。下一个include与.xhtml文件的含义相同

<resource>
   <directory>${basedir}/src/main/webapp</directory>
   <filtering>false</filtering>
   <excludes>
      <exclude>**/*.xml</exclude>
      <exclude>**/*.xhtml</exclude>
   </excludes>
</resource>

${basedir}/src/main/webapp
假的
**/*.xml
**/*.xhtml
所有参数与上一部分相同,但排除的含义与包含的含义相反 当根目录i位于pom.xml以外的路径时,使用${basedir}。在上面的例子中,它不是必需的


希望这有助于理解它

我知道这是一个老问题,但另一个答案太误导人了,我觉得我应该澄清一下

Maven中的过滤通常表示在处理过的文本文件中替换属性占位符的概念(例如,用项目的实际版本替换出现的
${project.version}

您的配置可以理解为:当复制到目标目录时,每个XML和/或XHTML文件都应该进行属性替换,而其他所有内容都应该简单地复制到目标目录,而不进行任何处理

进一步阅读: