2012-08-19 6 views
5

Я создал MOJO для конкретной потребности приложения. Я следовал в Maven guidelines в обозначении плагина, так что я не должен упомянуть полныйПрефикс плагина Maven не работает должным образом

mvn groupId:artifactId:version:goal 

для выполнения моего плагина (я назвал его в соответствии с форматом $ {префикс} -maven-плагин). Я даже включил свойство «goalPrefix» в разделе конфигурации POM плагина. Вот сопение, что я сделал POM моего плагина:

<configuration> 
    <goalPrefix>${prefix}</goalPrefix> 
</configuration> 

Но я все еще не в состоянии выполнить свой плагин только с помощью mvn ${prefix}:goal, так как он жалуется, что не может найти плагин в любом хранилище. Мне все еще нужно было использовать mvn groupId:artifactId:version:goal Любая идея, почему?

ответ

5

По умолчанию Maven распознает только плагины с идентификаторами групп org.apache.maven.plugins и org.codehaus.mojo. Если ваш плагин имеет другой идентификатор группы (который должен быть), вам нужно добавить эту группу ID, как плагин группа вашего Maven settings.xml файл:

<settings> 
    ... 
    <pluginGroups> 
    <pluginGroup>the.groupid.of.my.plugin</pluginGroup> 
    </pluginGroups> 
    ... 
</settings> 

Посмотри на Maven Settings Reference для получения более подробной информации ,

+0

Да, вы были абсолютно правы, maven только, кажется, распознает плагины, чьи групповые идентификаторы являются плагинами maven и codehaus, и мой был, конечно, другим. Это очень помогло, ура. EDIT: вы знаете, как я пытаюсь выполнить цель по умолчанию, если она не указана в командной строке? Как просто использование 'mvn plugin' вместо' mvn plugin: goal'. – mystarrocks

+1

@mystarrocks Нет таких целей, как цели по умолчанию. Тем не менее, maven знает концепцию [фаз жизненного цикла] (http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html), такие как 'compile',' test', 'install' и т. д. Плагин maven может быть привязан к такой фазе жизненного цикла. Например, если вы привяжете свой плагин к фазе 'package', вы можете просто запустить' mvn package' вместо 'mvn : '. –

+0

хорошо, что очищает вещи, приветствия. – mystarrocks

Смежные вопросы