如何将 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 注释是不是在 Maven 插件中工作?

如何使用 plexus-archiver 为条目设置额外字段

如何使用 openFromComponent 将snackBarRef 注入组件

配置 Plexus 日志记录

如何使用 Angular 中的依赖注入将属性指令实例传递给嵌套组件

如何将 Vuetify 注入我的自定义 vue 插件