【问题标题】:when referring to a maven plugin, if <executions> element is not present, which goal will be executed?当引用 maven 插件时,如果 <executions> 元素不存在,将执行哪个目标?
【发布时间】:2012-07-06 15:33:15
【问题描述】:

假设插件内部有几个目标。 例如:

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

【问题讨论】:

    标签: maven


    【解决方案1】:

    如果&lt;executions&gt; 不存在,则不会执行插件的任何目标。简单的。但是请注意,插件的目标和构建阶段之间存在一些预定义的绑定,这些绑定来自生命周期定义和工件的打包类型。因此,您不必将maven-compiler-plugincompiletestCompile 目标绑定到适当的阶段,因为它们已经绑定在大多数包装类型的生命周期定义中(例如jarwar)。但是这个hello-maven-plugin,可能是你刚刚创建的,需要这样的绑定,因为没有人知道它必须被执行。另外,请注意,插件的 mojos(目标)可以定义其与生命周期阶段的默认绑定,因此有时您只能看到 &lt;execution&gt; 定义中指定的目标而没有阶段。

    【讨论】:

    • maven有没有办法根据配置的参数找到正确的目标? (就像我问题中的第二个代码 sn-p)。
    • 我不这样。这些配置内容只是需要由 Plexus 注入到 Mojo(代表插件目标的 Java 类)字段中的值。要开始执行 Mojo,您需要调用特定的目标。没有一种运行时的解决方案。
    • 你是绝对正确的。我有时看不到 标签,因为它们是从父 pom 继承的。非常感谢。
    猜你喜欢
    • 2017-07-01
    • 2021-03-11
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2017-02-22
    • 2012-08-20
    • 1970-01-01
    相关资源
    最近更新 更多