执行 maven-resources-plugin 的说明

Explanation of an execution of maven-resources-plugin

我从另一个开发者那里继承了一个项目,pom.xml中有一点我不太明白。如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-resources-plugin</artifactId>
  <executions>
    <execution>
      <id>filter</id>
      <phase>generate-resources</phase>
      <goals>
        <goal>resources</goal>
      </goals>
    </execution>
  </executions>
</plugin>

有人可以阐明它正在尝试做什么吗?我认为它在说 "do filtering when running ANY generate-resources phase"。这个对吗?

不对,你的解释不正确。

这是为该插件的 maven-resources-plugin. This execution has an id of filter but this is just a technical identifier and it has no involvement in the build itself. This execution is bound to the generate-resources phase of the default life cycle and it invokes the resources 目标声明执行。

话虽如此,这确实很奇怪,可能完全没用。默认情况下,maven-resources-pluginresources 目标已经在 process-resources 阶段的默认生命周期中调用(就在 generate-resources 阶段之后)。这个目标所做的是将项目的所有资源(即默认情况下 src/main/resources 下的内容)复制到主输出目录(即默认情况下的 target 文件夹)。因此,此任务将执行两次:一次在 generate-resources 阶段(根据 POM 中的执行),另一次默认在 process-resources 阶段。