Вопрос

Я использую плагин maven-ear-plugin версии 2.3.1. Я знаю, что доступна новая версия: http://maven.apache.org/plugins/maven-ear-plugin/

Не могу понять, как обновиться до последней версии?

Это было полезно?

Решение

Версии плагинов по умолчанию унаследованы от Super POM, и вы можете проверить их с помощью mvn help:effective-pom.

Если вы хотите переопределить предоставленную там версию, добавьте это в свой POM:

<project>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.3.1</version>
      </plugin>
    </plugins>
  </build>
</project>

Замените версию на ту, которая вам нужна.

Другие советы

Несмотря на то, что на это уже получен «одобренный ответ», оказывается, что есть вот это Плагин УДИВИТЕЛЬНЫХ версий который решает бесконечную проблему поддержки версий.

Для ленивых вот некоторые из целей:

  • версии: display-dependent-updates сканирует зависимости проекта и создает отчет о тех зависимостях, для которых доступны более новые версии.
  • версии: display-plugin-updates сканирует плагины проекта и создает отчет о тех плагинах, для которых доступны более новые версии.
  • версии: display-property-updates сканирует проект и создает отчет о тех свойствах, которые используются для управления версиями артефакта, и о том, какие свойства имеют более новые версии.
  • версии: обновление-родитель обновляет родительский раздел проекта, чтобы он ссылался на новейшую доступную версию.Например, если вы используете корпоративный корневой POM, эта цель может быть полезна, если вам нужно убедиться, что вы используете последнюю версию корпоративного корневого POM.
  • версии: обновление-свойства обновляет свойства, определенные в проекте, чтобы они соответствовали последней доступной версии конкретных зависимостей.Это может быть полезно, если весь набор зависимостей должен быть привязан к одной версии.
  • версии: update-child-modules обновляет родительский раздел дочерних модулей проекта, чтобы версия соответствовала версии текущего проекта.Например, если у вас есть pom-агрегатор, который также является родительским для проектов, которые он объединяет, и дочерние и родительские версии не синхронизируются, это моджо может помочь исправить версии дочерних модулей.(Обратите внимание, что вам может потребоваться вызвать Maven с опцией -N для достижения этой цели, если ваш проект настолько сломан, что его невозможно собрать из-за несоответствия версий).
  • версии: блокировки-снимки ищет в pom все версии -SNAPSHOT и заменяет их текущей версией метки времени этого -SNAPSHOT, например.-20090327.172306-4
  • версии: разблокировка-снимки ищет в pom все версии снимков, заблокированных по временной метке, и заменяет их на -SNAPSHOT.
  • версии: установить может использоваться для установки версии проекта из командной строки.
  • версии:использовать-релизы ищет в pom все выпущенные версии -SNAPSHOT и заменяет их соответствующей версией выпуска.
  • версии: используйте следующие релизы ищет в pom все версии, отличные от SNAPSHOT, которые являются более новыми выпусками, и заменяет их следующей версией выпуска.
  • версии: используйте последние версии ищет в pom все версии, отличные от SNAPSHOT, которые являются более новыми выпусками, и заменяет их последней версией выпуска.
  • версии: использовать следующие снимки ищет в pom все версии, отличные от SNAPSHOT, которые были более новой версией -SNAPSHOT, и заменяет их следующей версией -SNAPSHOT.
  • версии: использовать последние снимки ищет в pom все версии, отличные от SNAPSHOT, которые были более новой версией -SNAPSHOT, и заменяет их последней версией -SNAPSHOT.
  • версии: использовать-следующие-версии ищет в pom все версии, которые были более новыми, и заменяет их следующей версией.
  • версии: использовать последние версии ищет в pom все более новые версии и заменяет их последней версией.

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

На самом деле выбранный в данный момент ответ не совсем верен.Должен быть

<project>
  <build>
   <pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.3.1</version>
      </plugin>
    </plugins>
   </pluginManagement>
  </build>
</project>

Я объяснил, почему здесь:

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

Если блок плагина не определяет выполнение (и, таким образом, не привязывает maven к выполнению чего-либо в жизненном цикле), поместите этот блок в pluginManagment"

Некоторые плагины maven ограничены версиями maven.Например, в местных проектах обычно используется Maven 2.0.4, который ограничен использованием плагина war 2.0.2 — он работает с наложениями.Однако альфа-версия 2.1, которую использует Maven 2.0.9, этого не делает, поэтому нам пришлось вручную понизить версию.Maven, если не указано иное, попытается использовать последнюю возможную версию плагина в соответствии с его версией.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top