2012-05-03 20 views
6

Sto costruendo contro vari reperti di Lucene e Solr Maven dal repository Maven di Apache ospitato nel gestore del repository Nexus. Gli artefatti sono la versione 4.0-SNAPSHOT e vengono aggiornati quotidianamente, con gli artefatti più vecchi eliminati regolarmente.Come si collegano le versioni degli artefatti Maven nel gestore del repository Nexus?

Mi chiedevo come collegare gli artefatti a una data specifica, quindi ogni volta che un client Maven chiedeva solr-core 4.0-SNAPSHOT, otterrebbe la stessa versione anche se ne esisteva una più recente.

Vorrei anche sapere come aggiornare in modo esplicito all'ultima 4.0-SNAPSHOT, ma conservare tutte le versioni precedenti che sono state scaricate.

In particolare, il repository "Apache Snapshots" è quello predefinito che viene installato durante l'installazione di Nexus.

risposta

3

Quando un'istantanea viene distribuita su un server di repository, ogni nuova distribuzione viene effettivamente distribuita come versione con timestamp con un numero di iteratore aggiunto. Se si desidera utilizzare una versione specifica, utilizzare semplicemente la versione data/ora dell'istantanea piuttosto che -SNAPSHOT.

E.g. guardare https://repository.apache.org/content/groups/snapshots/org/apache/maven/artifact/maven-artifact/3.0-alpha-2-SNAPSHOT/

è possibile utilizzare questo artefatto come

<groupId>org.apache.maven.artifact</groupId> 
<artifactId>maven-artifact</artifactId> 
<version>3.0-alpha-2-SNAPSHOT</version> 

che avrebbe cambiato ogni volta che un nuovo snapshot viene distribuito o si potrebbe usare

<groupId>org.apache.maven.artifact</groupId> 
<artifactId>maven-artifact</artifactId> 
<version>3.0-alpha-2-20090214.020928-1</version> 

che sarebbe rimasto lo stesso. Tieni comunque presente che un repository di istantanee NON è statico per natura e questi artefatti potrebbero potenzialmente scomparire completamente. Lo fai solo se stai usando un server di repository interno che puoi controllare e quindi assicurati che quelle istantanee non scompaiano su di te.

Un altro modo per farlo è in realtà tagliare un rilascio e utilizzarlo ..

3

È possibile utilizzare versions maven plugin per eseguire il pin su una versione specifica di SNAPSHOT che è valida solo finché SNAPSHOT è disponibile nel repository appropriato. Ma vorrei raccomandare di usare un gestore di repository e ottenere gli SNAPSHOT in un repository locale e lavorare con essi. Inoltre, è possibile ottenere un particolare SNAPSHOT e ricavarne una versione interna per exmaple 4.0.1-INTERNAL e renderlo più disponibile in base a questo.

+0

+1 Non era a conoscenza di questa funzionalità. Molto utile! –

Problemi correlati