Maven MOJO инъекция зависимостей и параметров

При использовании Plexus для плагина MOJO DI, есть ли способ ввести параметр конфигурации MOJO (помечено как @Parameter в классе Mojo) и в других компонентах?

Другими словами: есть ли способ, которым я могу делиться параметрами Mojo с другими компонентами Plexus, кроме инъекции самого Mojo в другие компоненты или прибегая к ручному "методу init"? Я надеялся, что параметры будут управляться контекстом 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);
        ...
    }
}

0 ответов

Другие вопросы по тегам