我不理解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>
答案 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}。在上面的例子中,它不是必要的
希望这有助于理解它