0

我有这样的 maven-metadata.xml 文件内容:

<groupId>com.ifact</groupId>
<artifactId>xxxx-exporter</artifactId>
<versioning>
<latest>0.0.21</latest>
<release>0.0.21</release>
<versions>
<version>0.0.1</version>
<version>0.0.2</version>
<version>0.0.3</version>
<version>0.0.4</version>
<version>0.0.5</version>
<version>0.0.6</version>
<version>0.0.7</version>
<version>0.0.8</version>
<version>0.0.9</version>
<version>0.0.10</version>
<version>0.0.11</version>
<version>0.0.12</version>
<version>0.0.13</version>
<version>0.0.14</version>
<version>0.0.15</version>
<version>0.0.16</version>
<version>0.0.17</version>
<version>0.0.18</version>
<version>0.0.19</version>
<version>0.0.20</version>
<version>0.0.20-1</version>
<version>0.0.20-2</version>
<version>0.0.21</version>
</versions>
<lastUpdated>20191206104706</lastUpdated>
</versioning>
</metadata>

我们看到0.0.21是最新的神器版本。(创建于2019 年 12 月 1 日星期日 13:28:29 GMT+0200

0.0.20-1(创建于2019 年 12 月 6 日星期五 12:47:03 GMT+0200

0.0.20-2(创建于2019 年 12 月 6 日星期五 12:46:21 GMT+0200

所以 maven-metadata.xml 不是按创建日期排序文件,而是按版本排序。

但是我需要获取最后更新/上传的工件,我不能依赖 maven-metadata.xml 文件的内容。

我尝试使用 API 调用: http://127.0.0.1:8081/service/rest/v1/search/assets?sort=&repository=xxxx-exporter-release&maven.extension=jar

并看到了一个正确的结果:

  "items": [
    {
      "downloadUrl": "http://127.0.0.1:8081/repository/xxxx-exporter-release/com/ifact/xxxx-exporter/0.0.21/xxxx-exporter-0.0.21.jar",
      "path": "com/ifact/xxxx-exporter/0.0.21/xxxx-exporter-0.0.21.jar",
      "id": "Yml6aWJveC1leHBvcnRlci1yZWxlYXNlOmExMTg4MWU5MDBiZWQyNTYzMWJhOThlMDJjNTczM2Zi",
      "repository": "xxxx-exporter-release",
      "format": "maven2",
      "checksum": {
        "sha1": "3c775285fa2f86aabe4d7ddc42ee0a5092fa4029",
        "md5": "066e78dbfcc1dc682fdbbe0241acca5a"
      }
    },
    {
      "downloadUrl": "http://127.0.0.1:8081/repository/xxxx-exporter-release/com/ifact/xxxx-exporter/0.0.20-2/xxxx-exporter-0.0.20-2.jar",
      "path": "com/ifact/xxxx-exporter/0.0.20-2/xxxx-exporter-0.0.20-2.jar",
      "id": "Yml6aWJveC1leHBvcnRlci1yZWxlYXNlOmExMTg4MWU5MDBiZWQyNTYwZmQ0OWMxY2M4MDhhYjhh",
      "repository": "xxxx-exporter-release",
      "format": "maven2",
      "checksum": {
        "sha1": "667138ef9d6c956b38c4691f415c1aea3451f492",
        "md5": "742607e475560ef2718d8c73c9659a2a"
      }
    },
    {
      "downloadUrl": "http://127.0.0.1:8081/repository/xxxx-exporter-release/com/ifact/xxxx-exporter/0.0.20-1/xxxx-exporter-0.0.20-1.jar",
      "path": "com/ifact/xxxx-exporter/0.0.20-1/xxxx-exporter-0.0.20-1.jar",
      "id": "Yml6aWJveC1leHBvcnRlci1yZWxlYXNlOmExMTg4MWU5MDBiZWQyNTY4YTJmYzM3MWI5MDY2OTcz",
      "repository": "xxxx-exporter-release",
      "format": "maven2",
      "checksum": {
        "sha1": "7a5a77bef08f798d36a4e1eefe36d9e122690f2b",
        "md5": "77b35b49278a30141afcb3675c66c26a"
      }
    }
  ],
  "continuationToken": null
}

API 按创建时间或上次上传对它们进行排序。但是,如果我们在 maven-metadata.xml 中下载一个标记为最新 0.0.21的工件。在此之后再次调用 API http://127.0.0.1:8081/service/rest/v1/search/assets?sort=&repository=xxxx-exporter-release&maven.extension=jar

在回应中,我们看到:

  "items": [
      "downloadUrl": "http://127.0.0.1:8081/repository/xxxx-exporter-release/com/ifact/xxxx-exporter/0.0.20/xxxx-exporter-0.0.20.jar",
      "path": "com/ifact/xxxx-exporter/0.0.20/xxxx-exporter-0.0.20.jar",
      "id": "Yml6aWJveC1leHBvcnRlci1yZWxlYXNlOmExMTg4MWU5MDBiZWQyNTZkZDkxNWE5MWVjMTUzZDdj",
      "repository": "xxxx-exporter-release",
      "format": "maven2",
      "checksum": {
        "sha1": "393741a956166b3354700ec647fd1f075e86b515",
        "md5": "aeacbd02eb39da06732bfb80beb7dd64"
      }
    },
    {
      "downloadUrl": "http://127.0.0.1:8081/repository/xxxx-exporter-release/com/ifact/xxxx-exporter/0.0.20-2/xxxx-exporter-0.0.20-2.jar",
      "path": "com/ifact/xxxx-exporter/0.0.20-2/xxxx-exporter-0.0.20-2.jar",
      "id": "Yml6aWJveC1leHBvcnRlci1yZWxlYXNlOmExMTg4MWU5MDBiZWQyNTYwZmQ0OWMxY2M4MDhhYjhh",
      "repository": "xxxx-exporter-release",
      "format": "maven2",
      "checksum": {
        "sha1": "667138ef9d6c956b38c4691f415c1aea3451f492",
        "md5": "742607e475560ef2718d8c73c9659a2a"
      }
    },
    {
      "downloadUrl": "http://127.0.0.1:8081/repository/xxxx-exporter-release/com/ifact/xxxx-exporter/0.0.20-1/xxxx-exporter-0.0.20-1.jar",
      "path": "com/ifact/xxxx-exporter/0.0.20-1/xxxx-exporter-0.0.20-1.jar",
      "id": "Yml6aWJveC1leHBvcnRlci1yZWxlYXNlOmExMTg4MWU5MDBiZWQyNTY4YTJmYzM3MWI5MDY2OTcz",
      "repository": "xxxx-exporter-release",
      "format": "maven2",
      "checksum": {
        "sha1": "7a5a77bef08f798d36a4e1eefe36d9e122690f2b",
        "md5": "77b35b49278a30141afcb3675c66c26a"
      }
    },
    {
      "downloadUrl": "http://127.0.0.1:8081/repository/xxxx-exporter-release/com/ifact/xxxx-exporter/0.0.21/xxxx-exporter-0.0.21.jar",
      "path": "com/ifact/xxxx-exporter/0.0.21/xxxx-exporter-0.0.21.jar",
      "id": "Yml6aWJveC1leHBvcnRlci1yZWxlYXNlOmExMTg4MWU5MDBiZWQyNTYzMWJhOThlMDJjNTczM2Zi",
      "repository": "xxxx-exporter-release",
      "format": "maven2",
      "checksum": {
        "sha1": "3c775285fa2f86aabe4d7ddc42ee0a5092fa4029",
        "md5": "066e78dbfcc1dc682fdbbe0241acca5a"
      }
    }
  ],
  "continuationToken": null
}

最后下载的工件在 API 响应中成为最新的。

如何获取最后更新/上传的工件?

Nexus 版本为 Sonatype Nexus Repository ManagerOSS 3.19.1-01

4

0 回答 0