Как мне обновить версию плагина maven? - PullRequest
27 голосов
/ 24 апреля 2009

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

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

Ответы [ 4 ]

42 голосов
/ 31 декабря 2010

Даже при том, что это уже получило "одобренный ответ", оказывается, что есть этот плагин AWESOME версии , который обрабатывает бесконечную проблему обслуживания версии.

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

  • версии: display-dependency-updates сканирует зависимости проекта и создает отчет о тех зависимостях, для которых доступны более новые версии.
  • версии: display-plugin-updates сканирует плагины проекта и выдает отчет о тех плагинах, для которых доступны более новые версии.
  • версии: display-property-updates сканирует проект и создает отчет о тех свойствах, которые используются для управления версиями артефактов и для каких свойств доступны более новые версии.
  • версии: update-parent обновляет родительский раздел проекта, чтобы он ссылался на самую новую доступную версию. Например, если вы используете корпоративное корневое POM, эта цель может оказаться полезной, если вам необходимо убедиться, что вы используете последнюю версию корпоративного корневого POM.
  • версии: update-properties обновляет свойства, определенные в проекте, чтобы они соответствовали последней доступной версии конкретных зависимостей. Это может быть полезно, если набор зависимостей должен быть привязан к одной версии.
  • версии: update-child-modules обновляет родительский раздел дочерних модулей проекта, чтобы версия соответствовала версии текущего проекта. Например, если у вас есть агрегатор pom, который также является родительским для проектов, которые он агрегирует, а дочерняя и родительская версии не синхронизированы, это mojo может помочь исправить версии дочерних модулей. (Обратите внимание, что вам может потребоваться вызвать Maven с параметром -N, чтобы выполнить эту цель, если ваш проект сломан настолько сильно, что его невозможно построить из-за несовпадения версий).
  • версии: lock-snapshots ищет в pom все версии -SNAPSHOT и заменяет их текущей версией временной метки -SNAPSHOT, например, -20090327.172306-4
  • версии: unlock-snapshots ищет в pom все версии заблокированных моментальных снимков с метками времени и заменяет их на -SNAPSHOT.
  • версии: set может использоваться для установки версии проекта из командной строки.
  • версии: use-release ищет в pom все выпущенные версии -SNAPSHOT и заменяет их соответствующей версией выпуска.
  • версии: use-next-release ищет в pom все версии, отличные от SNAPSHOT, которые были более новой версией, и заменяет их следующей версией выпуска.
  • версии: use-latest-release ищет в pom все версии, отличные от SNAPSHOT, которые были более новой версией, и заменяет их последней версией выпуска.
  • версии: use-next-snapshots ищет в pom все версии, отличные от SNAPSHOT, которые были более новой версией -SNAPSHOT, и заменяет их следующей версией -SNAPSHOT.
  • версии: use-latest-snapshots ищет в pom все версии, отличные от SNAPSHOT, которые были более новой версией -SNAPSHOT, и заменяет их последней версией -SNAPSHOT.
  • версии: use-next-version ищет в pom все версии, которые были более новой версией, и заменяет их следующей версией.
  • версии: use-latest-version ищет в pom все версии, которые были более новой версией, и заменяет их последней версией.
15 голосов
/ 24 апреля 2009

Версии плагинов по умолчанию унаследованы от 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>

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

8 голосов
/ 26 апреля 2009

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

На самом деле текущий выбранный ответ не совсем правильный. Должно быть

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

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

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

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

3 голосов
/ 24 апреля 2009

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

...