过滤Maven War插件

时间:2014-09-09 10:57:41

标签: java maven maven-war-plugin

我不理解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>

2 个答案:

答案 0 :(得分:2)

我知道这是一个老问题,但另一个答案是如此误导我觉得我应该澄清它......

Maven中的

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

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

进一步阅读:

答案 1 :(得分:-1)

在war插件配置中过滤用于包含/排除所选目录/文件。 给定配置如下:

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

上面配置的过滤设置为/ src / main / webapp作为根目录 有一个称为过滤的标志,用于启用/禁用过滤

<include>**/*.xml</include>

表示将包含根目录(/ src / main / webapp)的任何子目录中的所有.xml文件。下一个包含意思相同,但使用.xhtml文件

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

所有参数与前一部分相同,但排除具有相反含义的排除 当根目录i位于不同的路径然后是pom.xml时,使用$ {basedir}。在上面的例子中,它不是必要的

希望这有助于理解它