【问题标题】:fetch the latest version number of a maven package programmatically以编程方式获取 Maven 包的最新版本号
【发布时间】:2015-05-22 21:23:57
【问题描述】:

我想以编程方式获取基于数字的 maven 包的版本号 - 更具体地说:我需要 RELEASE 版本的编号。

一个例子:

JUnit 是一个著名的 maven 包。根据http://mvnrepository.com/artifact/junit/junit,目前的RELEASE是4.12。

因此,鉴于工件标识符,我希望收到相应的 RELEASE 版本号(在此特定情况下为 4.12)。由于 maven 是某种存储库,我希望有一种简单的方法可以做到这一点。

我目前确实有两种可能可行的不同方法,但是两者都不令人满意。

  1. 我可以创建一个需要 maven 依赖的伪 java 项目。在 mvn install 之后,可以从 jar 文件中获取版本号。
  2. 我可以向 mvnrepository.com/artifact/junit/junit 发出 GET 请求,然后是一些花哨的正则表达式……绝对不是最佳做法

编辑: 这是神奇的数字三: http://search.maven.org/solrsearch/select?q=g:%22groupid%22+AND+a:%22artifactid%22&core=gav&rows=1&wt=json 返回一个带有我搜索过的数字的 json。

【问题讨论】:

    标签: java maven


    【解决方案1】:

    不是 100% 清楚您想要做什么,但是,如果您希望在执行 pom 构建的工件时能够使用构建版本,以下应该会有所帮助。

    使用资源插件,您可以在资源中进行令牌替换。这意味着您可以将属性文件甚至 java 源文件中的任何字符串替换为诸如 ${project.version} 之类的 maven 属性的值。

    不清楚你想要什么版本,但是:

    • 通过使用属性来指定依赖项的版本,例如 ${junit.version},您可以使用依赖项版本。
    • 通过使用内置项目版本属性,您可以使用当前项目的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 2013-01-11
      • 2017-11-25
      • 2016-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多