如何将 Plexus 组件注入 Mojo
Posted
技术标签:
【中文标题】如何将 Plexus 组件注入 Mojo【英文标题】:Howto inject Plexus component into Mojo 【发布时间】:2014-01-18 18:27:51 【问题描述】:是否可以将 Plexus 组件注入 Mojo。
这是我尝试过的,但myComponent
始终是null
。
我的组件:
import org.codehaus.plexus.component.annotations.Component;
@Component(role = MyComponent.class, hint = "mine")
public class MyComponent
我的魔力:
import org.codehaus.plexus.component.annotations.Requirement;
import org.apache.maven.plugins.annotations.Component;
public class MyMojo extends AbstractMojo
@Requirement(role = MyComponent.class, hint = "mine", optional = false)
protected MyComponent myComponent;
@Component
protected MavenProject project;
【问题讨论】:
Cannot set parameter using annotations on a maven plugin 的可能重复项 【参考方案1】:您的 Java 部分是正确的,但您需要添加一些源处理来构建您的 Maven 插件。这可以通过在pom.xml
中的build
中添加以下内容来实现:
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-metadata</artifactId>
<version>2.0.0</version>
<executions>
<execution>
<id>process-classes</id>
<goals>
<goal>generate-metadata</goal>
</goals>
</execution>
</executions>
</plugin>
【讨论】:
以上是关于如何将 Plexus 组件注入 Mojo的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 plexus-archiver 为条目设置额外字段
如何使用 openFromComponent 将snackBarRef 注入组件