【发布时间】:2013-01-12 10:00:31
【问题描述】:
我正在分析一个 Maven 插件,我可以在 plugin 的 configuration 部分中配置它:
<plugin>
...
<executions>...</executions>
<configuration>
<!-- items placed here are visible to the MOJO -->
</configuration>
</plugin>
该插件完全忽略execution 的任何配置项,但:
<plugin>
...
<executions>
<execution>
<id>execution1</id>
<phase>test</phase>
<goals><goal>test</goal></goals>
<configuration>
<!-- items placed here are ignored -->
</configuration>
</execution>
</executions>
</plugin>
我使用mvn test 运行 Maven。我确信执行会发生,因为 Maven 正确打印了它的 id,但未配置插件 - 打印有关当 <configuration> 部分移出 <executions> 时不存在的不正确设置的警告。
问题:是插件的实现方式,它只接受“顶级”配置吗?我研究了它的源代码,在我看来,它是 Maven 调用 MOJO 类上的设置器,并且它对于选项来自哪个部分的插件是透明的。
MOJO 注释为:
* @component
* @goal test
* @phase test
* @execute phase="jasmine-process-test-resources"
【问题讨论】:
-
您对二传手的看法是正确的。 Plexus 是 DI 框架。 Some more info on that. 但请注意,现在有一个用于进行注入的 java 注释方法。
-
执行的配置只适用于生命周期绑定的执行。你确定这是你正在调用的执行吗
-
@StephenConnolly 我猜...我已将 MOJO 配置添加到我的答案中。
-
@MaDa 没什么区别...(除了阶段是完整的罂粟鸡)我们需要在
<execution>中查看您的<goals>并确保您指定一个CLI 上在您绑定到的阶段之后的阶段
标签: java maven maven-plugin jasmine-maven-plugin