Maven использовать @component, чтобы ввести mojo - PullRequest
5 голосов
/ 04 марта 2010

У меня есть плагин Maven, состоящий из нескольких моджо. Предположим, что есть myproject.FirstMojo объявлен первым как @goal а также myproject.SecondMojo объявлен как @goal second

что я хочу сделать, так это ввести первое mojo как свойство второго mojo. Я попробовал объявить это следующим образом:

/**
 * @component role="myproject.FirstMojo"
 */
private FirstMojo first;

К сожалению, при этом я получаю ошибку Component descriptor cannot be found in the component repository:.

Что мне делать?

1 Ответ

3 голосов
/ 05 марта 2010

Вы можете использовать:

/** @component role="org.apache.maven.plugin.Mojo" role-hint="groupId:artifactId:version:second" */
private FirstMojo first;

Обратите внимание, что они должны быть в одном плагине, и вы должны заменить группу, артефакт и версию вашими значениями. Это, вероятно, потребует фильтрации вашего исходного кода для правильной версии, что делает его немного сложным.

Я бы настоятельно рекомендовал выделить необходимую вам функциональность в отдельный класс (возможно, компонент Plexus, если вам нужен доступ к некоторым компонентам там) или абстрактный базовый класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...