spring-boot-starter-parent 资源包含/排除解释

ase*_*ec4 3 spring maven spring-boot

我对 spring-boot-starter-parent 版本 2.2.4.RELEASE 中的资源标签有点困惑。使用相同模式的包含和排除的目的是什么?

<resources>
  <resource>
    <filtering>true</filtering>
    <directory>${basedir}/src/main/resources</directory>
    <includes>
      <include>**/application*.yml</include>
      <include>**/application*.yaml</include>
      <include>**/application*.properties</include>
    </includes>
  </resource>
  <resource>
    <directory>${basedir}/src/main/resources</directory>
    <excludes>
      <exclude>**/application*.yml</exclude>
      <exclude>**/application*.yaml</exclude>
      <exclude>**/application*.properties</exclude>
    </excludes>
  </resource>
</resources>
Run Code Online (Sandbox Code Playgroud)

Jip*_*ipo 6

maven -resources-plugin过滤器选项允许您在资源中包含变量。变量将被插入到复制到输出目录的资源中。

spring-boot-starter-parent 包含 2 个资源块。

第一个包含<filter>true</filter>,这意味着变量将被插值。第一个包含一个包含过滤器,表明变量插值将仅对这些文件执行。

第二个不包含<filter>true</filter>,这意味着将使用默认值 (= false) 并且不会进行插值。第二个还包含一个排除过滤器,表示此过滤器中指定的文件将被此资源块排除。

因此,第一个块会将所有application*.(yml|yaml|properties)文件复制到输出文件夹,并插入变量。第二个块将复制所有其他文件,而不插入变量。