2013-04-18 4 views
2

У нас есть GroupID плагин Maven:Как игнорировать плагин Maven

com.company.maven.plugins 

К сожалению, когда я создал первый плагин в этом GroupID, я изначально использовал неправильное именование.

maven-myplugin-plugin 

1.x версии плагина использовали это имя. Когда я понял, что это было неправильно, я сменил имя, чтобы встретить correct convention.

myplugin-maven-plugin 

Затем я обновил версию до 2.x.

В моем локальном файле settings.xml я использую pluginGroups для доступа к моим плагинам из командной строки. Этот конкретный плагин не обязательно должен указываться в файле pom.

К сожалению, когда я пытаюсь получить доступ к своему плагину из командной строки, не просматривая имя, я всегда получаю последнюю версию неправильного соглашения об именах. Итак, я получаю версию 1.x.

Могу ли я сказать Maven игнорировать артефакты при доступе из командной строки (то есть mvn myplugin:mygoal)?

Некоторые проекты по-прежнему используют старые плагины 1.x, поэтому я не хочу их удалять из нашего репозитория. Кроме того, мы используем хотя бы Maven 3.0.3.

ответ

1

Это как-то кажется, что Maven3 разрешает префиксы от плагинов в порядке

1. maven-myplugin-plugin 
2. myplugin-maven-plugin 
3. ... hard-wired groups ... 

После официальной именовании она должна быть наоборот имхо. Тем не менее, я думаю, у вас нет шансов получить это исправление. Я попробовал множество вещей, в основном играя с goalPrefix в конфигурации maven-plugin-plugin. Установка новой версии устаревшего плагина с goalPrefix не помогла. Я думаю, одна вещь, которую вы могли бы сделать, это определение другой префикс для вашего правильно названием плагина, например .:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-plugin-plugin</artifactId> 
    <version>3.2</version> 
    <configuration> 
     <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> 
     <goalPrefix>myplugin2</goalPrefix> 
    </configuration> 
</plugin> 

Другой подход может быть, чтобы настроить pom.xml в старый плагина, переименовав его на что-то другое. Но это означало бы, что вашим коллегам понадобится другая команда другого mvn. Или вы можете переименовать свой текущий плагин - аналогичные результаты.

Если есть лучшее решение, мне также было бы интересно!

+0

Я закончил переименование плагина. Спасибо за предложения. –

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