2015-03-30 7 views
12

Итак, я пытаюсь использовать последнюю версию некоторых плагинов. Раньше я использовал тег предварительных условий, но множество ресурсов (example) говорят, что его следует считать устаревшим и что вместо него следует использовать maven-enforcer-plugin. это моя конфигурация:версии: display-plugin-updates не понимает maven-enforcer-plugin

<plugin> 
    <inherited>true</inherited> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-enforcer-plugin</artifactId> 
    <version>1.3.1</version> 
    <executions> 
    <execution> 
     <id>enforce-maven-3</id> 
     <goals> 
     <goal>enforce</goal> 
     </goals> 
     <configuration> 
     <rules> 
      <requireMavenVersion> 
      <version>3.0.4</version> 
      </requireMavenVersion> 
     </rules> 
     <fail>true</fail> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

Однако, когда я бегу МВН версии: дисплей-плагин-Updates я до сих пор получить этот текст:

[ERROR] Project does not define required minimum version of Maven. 
[ERROR] Update the pom.xml to contain 
[ERROR]  <prerequisites> 
[ERROR]  <maven>3.0</maven> 
[ERROR]  </prerequisites> 
[INFO] 
[INFO] Require Maven 2.0.6 to use the following plugin updates: 
[INFO] maven-jar-plugin ................................................ 2.4 
[INFO] maven-shade-plugin ............................................ 1.7.1 
[INFO] 
[INFO] Require Maven 2.2.1 to use the following plugin updates: 
[INFO] maven-jar-plugin ................................................ 2.6 
[INFO] 
[INFO] Require Maven 3.0 to use the following plugin updates: 
[INFO] maven-shade-plugin .............................................. 2.3 

Использование Предпосылками-тег вместо работает.

+4

https://jira.codehaus.org/browse/MVERSIONS-272. –

+0

Какую версию Maven вы используете? – khmarbaise

+0

3.3.1 Похоже, что Александр М полностью находится на – Richo

ответ

6

Кажется, что этот выпуск был сообщен here (кредиты идут Aleksandr M для нахождения этого).

Видимо, дисплей-зависимости обновления цели опирается на prerequisites элементе, чтобы узнать версию Maven, требуемую в текущем проекте и полностью игнорирует Инфорсер-плагин, даже несмотря на то, предпосылками-тег не должен быть использован в обычном режиме , это необходимо для того, чтобы заставить плагин зависимостей вести себя так, как ожидалось.

+0

Когда вы пишете плагины, у вас часто есть другие плагины в качестве зависимостей. Тег Предварительные требования были выполнены для обеспечения того, чтобы плагины знали, какую версию требует данный проект, а в некоторых случаях НЕ запускаются. AFAI понимает, что Enforcer для проектов, не связанных с плагинами. –

+2

Ошибка теперь можно найти на странице https://github.com/mojohaus/versions-maven-plugin/issues/48 – davidwebster48

-2

Предпосылками осуждается для Maven 3.X:

http://jira.codehaus.org/browse/MNG-4840 http://jira.codehaus.org/browse/MNG-5297

Кроме того, если вы звоните

mvn versions:display-plugin-updates 

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

Кроме того, вы должны прикрепить все версии плагинов, которые вы используете в своей сборке.

И один очень важные вещи (выдержка из FAQ):

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

Это означает, что только если ваши разрабатываемые плагины предпочтителен, лучше использовать путь maven-enforcer-plugin. Для обычного проекта разработки используйте конфигурацию maven-enforcer-plugin для принудительной настройки определенных версий Maven.

Чтобы получать информацию о обновлении плагинов, я могу порекомендовать подписаться на Announcment mailing list или если вы хотите получить хороший обзор, см. plugins page.

+0

Да, я знаю, моя проблема в том, что maven-enforcer-plugin (который заменяет предварительные условия) doesn 't work – Richo

+0

Что вы подразумеваете под: Не работает? – khmarbaise

+2

Когда я запускаю версии mvn: display-plugin-updates, я до сих пор получаю этот текст , см. Мой оригинальный пост. Также см. Александр М, он определил проблему – Richo