maven资源插件的执行说明



我从另一个开发人员那里继承了一个项目,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>

有人能告诉我们它想做什么吗?我认为这是在说,"在运行ANY生成资源阶段时进行过滤"。这是正确的吗?

不,您的解释不正确。

这是在声明对maven-resources-plugin的执行。此执行的id为filter,但这只是一个技术标识符,它与构建本身无关。此执行绑定到默认生命周期的generate-resources阶段,并调用该插件的resources目标。

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

最新更新