通过命令行列出所有神器版本

Chr*_*tti 16 command-line maven

包括安装到〜/ .m2的所有版本,并部署到maven或神器库等神器库.

例如,如果我键入类似这样的make believe命令:

mvn ver:show-all -DartifactId=myProject -DallowSnapshots=true
Run Code Online (Sandbox Code Playgroud)

我希望看到一些输出列表可用版本:

myProject ->
  0.9
  1.0.1
  1.1-branchA-SNAPSHOT
  1.1-branchB-SNAPSHOT
  1.1-branchC-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)

今天有没有maven插件呢?

mad*_*ead 6

您可以做的是查看Maven Repository Metadata Model。它基本上是您可以下载和解析的 XML 文件。例如,要了解 Maven Central 下载存储库元数据中可用的所有 Google Guice 版本,请访问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>
Run Code Online (Sandbox Code Playgroud)

你会看到所有的版本!

不过,这不是 100% 完整的解决方案:

  • 其他存储库中可能有更新的(其他)版本。例如,如果将 JAR 从 Bintray 同步到 Maven Central Bintray 可以包含 Central 中不可用的 JAR。不过,对于Guice来说,它们似乎是一样的。
  • 可能没有maven-metadata.xml。例如,如果您使用的是在 S3 上托管的JitPack或存储库。