簡體   English   中英

OSS Nexus:如何使用REST API將最新版本作為文本檢索

[英]OSS Nexus: how to use REST API to retrieve last version as a text

我想檢索最新的版本名稱(作為文本),以便能夠重命名從Nexus檢索到的具有時間戳的藝術品。

我所做的是創建包含內部jar項目,依賴項,相關腳本的幾個檔案的存檔......但是如果打包的jar是快照,則存檔在下載時會以時間戳結束。 這些時間戳取代了存檔的XXX-SNAPSHOT擴展名,我無法使任何自動腳本執行某些任務,如提取存檔,重命名目錄,制作一些符號鏈接,......

我沒有在其余的api文檔中找到與此相關的任何內容。 有沒有一個簡單的方法來執行其余的api或某種腳本?

謝謝。

編輯:

從下面的答案我設法使用LATEST而不是版本名稱檢索最新的快照版本:

然后使用腳本我可以檢索基本版本。

#!/bin/bash
VERSION=`curl --silent "http://redmine.saic.int:8081/nexus/service/local/artifact/maven/resolve?r=snapshots&g=com.g2mobility&a=G2-Modem-Mgr&v=LATEST&c=executable&e=tar.gz" | sed -n 's|<baseVersion>\(.*\)</baseVersion>|\1|p'`

VERSION=`echo "$VERSION" | tr -d ' '`

echo "Version is $VERSION"

謝謝!

Nexus具有以下REST API,用於描述如何解析Maven模塊:

要獲取有關以下工件的詳細信息:

<groupId>org.cometd.jetty</groupId>
<artifactId>cometd-jetty-client</artifactId>
<version>1.0-SNAPSHOT</version>

使用以下REST API:

https://oss.sonatype.org/service/local/artifact/maven/resolve?r=cometd-snapshots&g=org.cometd.jetty&a=cometd-jetty-client&v=1.0-SNAPSHOT&e=jar

返回以下報告:

<artifact-resolution>
  <data>
    <presentLocally>true</presentLocally>
    <groupId>org.cometd.jetty</groupId>
    <artifactId>cometd-jetty-client</artifactId>
    <version>1.0-20090313.100344-2</version>
    <baseVersion>1.0-SNAPSHOT</baseVersion>
    <extension>jar</extension>
    <snapshot>true</snapshot>
    <snapshotBuildNumber>2</snapshotBuildNumber>
    <snapshotTimeStamp>1236938624000</snapshotTimeStamp>
    <sha1>0cbf7163f19bf4586e27632a1f742dd0c0e0036d</sha1>
    <repositoryPath>/org/cometd/jetty/cometd-jetty-client/1.0-SNAPSHOT/cometd-jetty-client-1.0-20090313.100344-2.jar</repositoryPath>
  </data>
</artifact-resolution>

這是一個刪除了漏洞的帖子,提出了一種從Maven存儲庫內容組裝發行版的替代方法:

常春藤是一種替代依賴管理客戶機,它可從運行的命令行如下:

java -jar ivy.jar -settings ivysettings.xml -dependency org.cometd.jetty cometd-jetty-client 1.0-SNAPSHOT -retrieve "distrib/[artifact]-[revision](-[classifier]).[ext]"

ivy命令的retrieve選項詳細說明了如何在本地存儲下載的文件:

-- distrib
   |-- cometd-api-1.0-SNAPSHOT.jar
   |-- cometd-jetty-client-1.0-SNAPSHOT.jar
   |-- cometd-jetty-client-1.0-SNAPSHOT-javadoc.jar
   |-- cometd-jetty-client-1.0-SNAPSHOT-sources.jar
   |-- cometd-jetty-server-1.0-SNAPSHOT.jar
   |-- jetty-6.1.15.jar
   |-- jetty-client-6.1.15.jar
   |-- jetty-sslengine-6.1.15.jar
   |-- jetty-util5-6.1.15.jar
   |-- jetty-util-6.1.15.jar
   `-- servlet-api-2.5-20081211.jar

檢索到正確的帶時間戳的工件,但保留了“SNAPSHOT”修訂版號,這是我理解您正在嘗試執行的操作。

ivysettings文件詳細說明了下載工件時要使用的存儲庫:

<ivysettings>
    <settings defaultResolver="repos"/>
    <resolvers>
        <chain name="repos">
            <ibiblio name="central" m2compatible="true"/>
            <ibiblio name="cometd-snapshot" root="https://oss.sonatype.org/content/repositories/cometd-snapshots/" m2compatible="true"/>
        </chain>
    </resolvers>
</ivysettings>

可以在此處找到Maven Resolve Nexus REST API的文檔: https//maven.java.net/nexus-core-documentation-plugin/core/docs/rest.artifact.maven.resolve.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM