Перечисление всех версий артефакта с помощью командной строки

Включая все версии, установленные в ~/.m2, и развернуты в maven или хранилище артефактов, например artifactory.

Например, если я напечатаю что-то вроде этого, сделайте команду:

mvn ver:show-all -DartifactId=myProject -DallowSnapshots=true

Я надеюсь увидеть некоторые выходные листинг доступных версий:

myProject ->
  0.9
  1.0.1
  1.1-branchA-SNAPSHOT
  1.1-branchB-SNAPSHOT
  1.1-branchC-SNAPSHOT

Есть ли плагин maven, который делает это сегодня?

Ответ 1

Что вы можете сделать, это посмотреть на модель метаданных Maven Repository. Это в основном и XML файл, который можно загрузить и проанализировать. Например, чтобы узнать все версии Google Guice, доступные в метаданных репозитория Maven Central, доступны по адресу https://repo1.maven.org/maven2/com/google/inject/guice/maven-metadata.xml и посмотрите на его содержание:

<metadata>
  <groupId>com.google.inject</groupId>
  <artifactId>guice</artifactId>
  <versioning>
    <latest>4.2.2</latest>
    <release>4.2.2</release>
    <versions>
      <version>1.0</version>
      <version>2.0</version>
      <version>2.0-no_aop</version>
      <version>3.0-rc2</version>
      <version>3.0-rc3</version>
      <version>3.0</version>
      <version>4.0-beta</version>
      <version>4.0-beta4</version>
      <version>4.0-beta5</version>
      <version>4.0</version>
      <version>4.1.0</version>
      <version>4.2.0</version>
      <version>4.2.1</version>
      <version>4.2.2</version>
    </versions>
    <lastUpdated>20181029173633</lastUpdated>
  </versioning>
</metadata>

Вы увидите все версии!

Хотя это не 100% полное решение:

  • В других репозиториях могут быть более новые версии (другие). Например, если синхронизация JAR от Bintray до Maven Central Bintray может содержать JAR, недоступные в Central. Хотя, они, похоже, одинаковы для Guice.
  • Не может быть maven-metadata.xml. Например, если вы используете JitPack или репозитории, размещенные на S3.