我正在玩第一次编写maven插件。我编写了一个简单的插件,其目标是将hello world消息写入输出。我还使用@phase注释创建了对安装生命周期阶段的默认绑定。这在我的plugin.xml中显示为我的mojo元素的install元素。
我的理解是我现在可以简单地将它添加到我的build.plugins部分,而不指定任何执行,我的插件目标将在安装阶段执行。但这不会发生。这是不会创建任何目标的配置:
<build>
<plugins>
<plugin>
<groupId>com.emc.chad</groupId>
<artifactId>hello-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
</plugin>
</plugins>
</build>
但是,如果我将其更改为明确指定执行,则可以:
<plugin>
<groupId>com.emc.chad</groupId>
<artifactId>hello-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<executions>
<execution>
<id>test</id>
<phase>install</phase>
<goals>
<goal>hello</goal>
</goals>
<configuration>
</configuration>
</execution>
</executions>
</plugin>
我理解为什么这当然有效,但考虑到我的plugin.xml阶段规范,不应该是第一个工作吗?