Java Maven War插件中的过滤
我不了解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
<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文件都应该进行属性替换,而其他所有内容都应该简单地复制到目标目录,而不进行任何处理
进一步阅读: