在将 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);
...
}
}