【问题标题】:How to get the HIGHEST version of an artifact via Maven Nexus REST api?如何通过 Maven Nexus REST api 获得最高版本的工件?
【发布时间】:2012-06-06 12:28:19
【问题描述】:

虽然我可以使用 /nexus/service/local/artifact/maven/resolve?r=releases&g=com.mycompany&a=myArtifact&v=LATEST

然后我读到了the difference between LATEST and RELEASE

在 Maven 3 中,不再填充 LATEST - 好的
但是 RELEASE 只给了我最新发布的版本!
那么如何获取最高版本的工件呢?
我需要一些东西,它返回版本 2.1.3
有什么线索吗?

这是我来自 Nexus 的 maven-metadata.xml:

<metadata>
  <groupId>com.mycompany</groupId>
  <artifactId>myartifact</artifactId>
  <versioning>
    <latest>1.0.4</latest>
    <release>2.0.5</release>
    <versions>
      <version>1.0.0</version>
      <version>1.0.1</version>
      <version>1.0.2</version>
      <version>1.0.4</version>
      <version>1.0.5</version>
      <version>1.0.6</version>
      <version>1.0.7</version>
      <version>2.0.0</version>
      <version>2.0.1</version>
      <version>2.0.2</version>
      <version>2.0.3</version>
      <version>2.0.4</version>
      <version>2.1.0</version>
      <version>2.1.1</version>
      <version>2.1.2</version>
      <version>2.1.3</version> <!-- released week ago -->
      <version>2.0.5</version> <!-- released today -->
    </versions>
    <lastUpdated>20120531131959</lastUpdated>
  </versioning>
</metadata>

【问题讨论】:

    标签: maven nexus maven-metadata


    【解决方案1】:

    使用DefaultArtifactVersion 中的代码从可以使用compareTo() 排序的字符串创建版本实例。

    代码在工件中

    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-artifact</artifactId>
      <version>3.0</version>
    </dependency>
    

    请注意,这并不总是有效。例如commons-lang:commons-lang 的版本20030203.000129 比最新的2.6 旧,但排序更高。

    【讨论】:

    • 谢谢。看来,由于 LATEST & Co 的不同含义,目前这只能以编程方式实现。好读 blogs.cservenak.com/2011/02/… 让我们看看我们是否在不久的将来获得一些其他定义以获取最高版本号......
    猜你喜欢
    • 2017-06-28
    • 2011-12-16
    • 2015-05-23
    • 2013-01-24
    • 2012-06-17
    • 2014-04-14
    • 2021-10-12
    • 2018-11-24
    • 2014-06-24
    相关资源
    最近更新 更多