2012-08-31 16 views
7

タイムスタンプを持つNexusから取り出されたアーティファセットの名前を変更できるように、最新のバージョン名(テキスト)を取得したいと思います。OSS 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" 

ありがとうございます!

答えて

8

ネクサスは、モジュールがどのように解決するか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のリポジトリのコンテンツから分布を組み立てる別の方法を提案eariler削除掲示した:

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

関連する問題