我自己的Maven插件如何获得Maven工件的可用版本?

时间:2018-06-14 13:46:22

标签: java maven version metadata maven-plugin

我正在为Maven编写一个插件,并且需要能够确定哪些版本可用于任何给定的Maven工件。 maven-metadata.xml文件包含此信息,但我无法了解如何从我的插件中访问它。

我尝试使用myArtifact.getAvailableVersions()但它只返回null。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

所有可用版本可能意味着不同的事情:

  • 如果您要查找已在Maven central上发布的工件的所有可用版本,则可以使用他们的search api来获取版本。 REST调用https://search.maven.org/solrsearch/select?q=g:"org.apache.tamaya"+AND+a:"tamaya-core"&core=gav&rows=20&wt=json将返回包含tamaya-core工件的所有可用版本的json文档。将tamaya-core的组ID和工件ID替换为工件的数据,您将获得所请求的数据。
  • 如果请求的工件仅在组织的私有存储库中可用,请检查存储库的文档(如果存在类似的REST API)。例如,如果您使用Sonatype Nexus,则描述REST api here
  • 如果工件仅在您计算机上的本地Maven存储库中可用(这意味着它从未部署过),则可以直接检查文件系统。