2012-08-31 15 views
7

Vorrei recuperare l'ultimo nome di versione (come testo) per poter rinominare gli artificats recuperati da Nexus che hanno data e ora.OSS Nexus: come utilizzare l'API REST per recuperare l'ultima versione come testo

Quello che faccio è creare un archivio di diversi archivi contenenti progetti jar interni, dipendenze, script correlati, ... Ma se i jar confezionati sono snapshot, gli archivi finiscono con la data e l'ora quando scaricati. Questi timestamp sostituiscono l'estensione XXX-SNAPSHOT dell'archivio e non posso creare nessuno script automatizzato per eseguire alcune attività come estrarre l'archivio, rinominare la directory, creare alcuni collegamenti simbolici, ...

Non ho trovato nulla relativo a questo nella documentazione resto api. C'è un modo semplice per farlo con l'API di riposo o qualche tipo di script?

Grazie.

Edit:

Dalla risposta qui sotto sono riuscito a recuperare l'ultima versione di snapshot che utilizza l'ultimo posto del nome della versione:

Quindi, utilizzando uno script che posso recuperare la versione base.

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

Grazie!

risposta

8

Nexus ha il seguente API REST per descrivere i moduli come Maven sono risolti:

Esempio

Per ottenere i dettagli qui di seguito artefatto:

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

Usa la seguente API REST:

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

Restituisce il seguente rapporto:

<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

Questo è stato un post cancellato eariler proporre un modo alternativo di assemblaggio distribuzioni da Maven contenuti repository:

Ivy un client gestione delle dipendenze alternativa, che può essere eseguito dal command-line come segue:

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

L'opzione recupera l'opzione del comando ivy come i file scaricati devono essere archiviati localmente:

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

L'artefatto con timestamp corretto viene recuperato ma il numero di revisione "SNAPSHOT" viene conservato, che è quello che capisco tu stia cercando di fare.Dettagli

Il file ivysettings i repository da utilizzare quando si scaricano gli artefatti:

<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

Questo è quello che voglio fare, ma stiamo usando Maven e non vogliamo passare ad un altro gestore di dipendenze. – fewe

Problemi correlati