SpringBootStarter父资源包括/不包括

SpringBootStarter父资源包括/不包括,spring,spring-boot,maven,Spring,Spring Boot,Maven,我对SpringBootStarter父版本2.2.4.RELEASE中的resources标签有点困惑。使用相同的模式包含和排除的目的是什么 <resources> <resource> <filtering>true</filtering> <directory>${basedir}/src/main/resources</directory> <includes> &

我对SpringBootStarter父版本2.2.4.RELEASE中的resources标签有点困惑。使用相同的模式包含和排除的目的是什么

<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>

真的
${basedir}/src/main/resources
**/应用程序*.yml
**/应用程序*.yaml
**/应用程序*.properties
${basedir}/src/main/resources
**/应用程序*.yml
**/应用程序*.yaml
**/应用程序*.properties
过滤器选项允许您在资源中包含变量。变量将插入复制到输出目录的资源中

SpringBootStarter父级包含2个资源块

第一个包含
true
,这意味着变量将被插值。第一个包含一个includes过滤器,指示变量插值将仅对这些文件执行

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

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