1

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

然后我读到了 LATEST 和 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>
4

1 回答 1

0

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

代码在工件中

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

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

于 2012-06-01T09:13:59.440 回答