【问题标题】:Explanation of an execution of maven-resources-pluginmaven-resources-plugin 的执行说明
【发布时间】:2016-01-30 02:45:48
【问题描述】:

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

有人可以阐明它正在尝试做什么吗?我认为这是在说“在运行任何生成资源阶段时进行过滤”。它是否正确?

【问题讨论】:

  • 通过使用这种显式形式(像其他插件一样),子项目可以继承执行。此外,设置替代执行 ID 意味着不会受到配置有包含/排除标记的其他执行的干扰。

标签: maven maven-resources-plugin


【解决方案1】:

不,你的解释不正确。

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

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

【讨论】:

    最近更新 更多