1

在将 Plexus 用于 MOJO 插件 DI 时,是否也可以在其他组件中注入 MOJO 配置参数(@Parameter在 Mojo 类中使用注释)?

换句话说:除了将 Mojo 本身注入其他组件或诉诸手动“init 方法”之外,还有其他方法可以与其他 Plexus 组件共享 Mojo 参数吗?我有点希望参数将由 DI 上下文管理。

假设我有这样的 Mojo:

@Mojo
public class MyMojo extends AbstractMojo {

    @Parameter
    private String param;

    @Inject
    private SomeComponent component;
}

那么做这样的事情会很好:

@Named
public class SomeComponent {
    @Inject // or whatever else
    private String param;

    // some methods that use param here
}

而不是必须这样做:

@Mojo
public class MyMojo extends AbstractMojo {

    @Parameter
    private String param;

    @Inject
    private SomeComponent component;

    @Override
    public void execute() throws MojoExecutionException {
        component.setParam(param);
        ...
    }
}
4

0 回答 0