archetype-metadata.xml 中究竟“过滤”了什么

问题描述

maven-documentation 不是很有帮助:

可以过滤文件集,这意味着所选文件将用作 VeLocity 模板。它们可以是未过滤的,这意味着所选文件将被复制而无需修改

那么让我们来看看下面的代码。我知道所选文件将用作 VeLocity 模板,因此可以对其进行操作。 如何操作此文件集以及如何使用 VeLocity 模板?

<fileSets>
    <fileSet filtered="true" packaged="true">
      <directory>src/test/java</directory>
      <includes>
        <include>**/*.java</include>
      </includes>
      <excludes>
        <exclude>AllTest.java</exclude>
      </excludes>
    </fileSet>
  </fileSets>

解决方法

如您所说,如果您将 filtered 设置为 true,那么 Velocity 引擎会获取文件并执行所有 Velocity 替换,包括替换 $ 语法中给出的变量并评估速度环。

变量值是在 POM 中设置的属性。