在引用maven插件时,如果<executions>元素不存在,将执行哪个目标?</executions>

时间:2012-07-06 06:44:23

标签: maven

让我们说插件里面有几个目标。 例如:

<plugins>
    <plugin>
      <groupId>sample.plugin</groupId>
      <artifactId>hello-maven-plugin</artifactId>
      <version>1.0-SNAPSHOT</version>
    </plugin>
</pulgins>

或者像这样(没有执行标签,只是配置标签):

<plugin>
  <groupId>sample.plugin</groupId>
  <artifactId>hello-maven-plugin</artifactId>
  <version>1.0-SNAPSHOT</version>
  <configuration>
    <greeting>Welcome</greeting>
  </configuration>
</plugin>

1 个答案:

答案 0 :(得分:1)

如果<executions>不存在,则不会执行插件的目标。简单。但要注意,插件的目标和构建阶段之间存在一些预定义的绑定,这些绑定是由生命周期定义产生的,并且是由工件的打包类型产生的。因此,您不必将maven-compiler-plugin的{​​{1}}和compile目标绑定到正确的阶段,因为它们已经绑定在大多数打包类型的生命周期定义中(例如testCompilejar)。但是这个war,你刚刚创建的,需要这样的绑定,因为没有人知道它必须被执行。另外,请注意插件的mojos(目标)可以定义其对生命周期阶段的默认绑定,因此有时您只能看到hello-maven-plugin定义中没有阶段指定的目标。