Как показывать версии плагинов

#java #maven

#java #maven

Вопрос:

Я хочу знать версию установленного плагина. Какая команда может это сделать?

Комментарии:

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

Ответ №1:

 mvn -Dplugin=<groupId>:<artifactId> help:describe
  

подробное описание плагина, включая версию

Комментарии:

1. FWIW: это не обязательно версия плагина, выполняемая при сборке проекта. Если effective-pom настроен по-другому, т.е. версия плагина отличается, отличается версия, указанная help:describe и версия, используемая сборкой.

Ответ №2:

Если бы вы хотели знать, какая версия плагинов (вкл. плагины предоставляются через maven master pom) ваша сборка используется, попробуйте:

 mvn help:effective-pom
  

Комментарии:

1. У меня это не сработало (версия 2.2.1-СНИМОК не найден); однако mvn org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom работает.

2. Да, похоже, что effective-pom не разрешает версии плагинов, он включает их, только если они настроены в родительской иерархии pom.

Ответ №3:

Я не знаю, что вы подразумеваете под «установленной версией плагина», но Maven help plugin позволяет вам получить описание плагина, указав groupId и artifactId,

 mvn -Dplugin=<groupId>:<artifactId> help:describe
  

Вы получите подробное описание плагина, включая версию (хотя я должен признать, что я не знаю стратегии разрешения номера версии).

Пример для maven-dependency-plugin

 mvn -Dplugin=org.apache.maven.plugins:maven-dependency-plugin help:describe
  

Вывод:

 Name: Maven Dependency Plugin
Description: Provides utility goals to work with dependencies like copying,
  unpacking, analyzing, resolving and many more.
Group Id: org.apache.maven.plugins
Artifact Id: maven-dependency-plugin
Version: 2.2
Goal Prefix: dependency

This plugin has 21 goals:

dependency:analyze
  Description: Analyzes the dependencies of this project and determines which
    are: used and declared; used and undeclared; unused and declared. This goal
    is intended to be used standalone, thus it always executes the test-compile
    phase - use the dependency:analyze-only goal instead when participating in
    the build lifecycle.

dependency:analyze-dep-mgt
  Description: This mojo looks at the dependencies after final resolution and
    looks for mismatches in your dependencyManagement section. In versions of
    maven prior to 2.0.6, it was possible to inherit versions that didn't match
    your dependencyManagement. See MNG-1577 for more info. This mojo is also
    useful for just detecting projects that override the dependencyManagement
    directly. Set ignoreDirect to false to detect these otherwise normal
    conditions.

dependency:analyze-duplicate
  Description: Analyzes the <dependencies/> and <dependencyManagement/> tags
    in the pom.xml and determines the duplicate declared dependencies.

... and much more
  

Ответ №4:

Добавьте это в свой pom.xml файл, и вы получите результат на mvn clean install :

 <plugins>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>versions-maven-plugin</artifactId>
    <version>2.1</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <goals>
           <goal>display-dependency-updates</goal>
           <goal>display-plugin-updates</goal>
           <goal>display-property-updates</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>
  

Если вы просто хотите сделать это один раз:

 mvn versions:display-plugin-updates
  

Комментарии:

1. версии mvn:display-plugin-updates загружает pom всех плагинов в мире. Больше, чем я хотел.

Ответ №5:

Вы можете добавить параметр « -X » при упаковке maven( mvn clean compile * -X ), а затем выполнить поиск по « artifactId «, чтобы увидеть точный номер версии.