2012-08-31 43 views
7

我想檢索最新版本名稱(作爲文本)以便能夠重新命名從Nexus檢索到的具有時間戳的artificats。OSS Nexus:如何使用REST API將最後一個版本作爲文本檢索

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

我沒有找到任何與這在其餘的api文檔中。有沒有簡單的方法來做到這一點與其餘的API或某種腳本?

謝謝。

編輯:

從下面的答案我設法採用了最新的代替版本名稱檢索最新快照版本:

然後使用腳本我可以檢索的基礎版本。

#!/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" 

謝謝!

回答

8

的Nexus用於描述如何Maven的模塊下面的REST API得到解決:

示例

要獲得有關以下神器細節:

<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> 
0

這是一個早期的教刪除發佈提出從Maven倉庫內容組裝分佈的另一種方法:

Ivy是一種替代依賴管理客戶機,它可從command-line如下運行:

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

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

-- 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> 
+0

這就是我想要做的,但是我們正在使用maven,並且不想移動到另一個依賴關係管理器。 – fewe

相關問題