2012-05-03 13 views
6

Estoy compilando varios artefactos Lucene y Solr Maven del repositorio Maven de Apache alojado en el administrador de repositorios Nexus. Los artefactos son la versión 4.0-SNAPSHOT y se actualizan a diario, con artefactos antiguos que se eliminan regularmente.¿Cómo relaciona las versiones de artefactos Maven en el administrador de repositorios Nexus?

Me preguntaba cómo vincular los artefactos a una fecha específica, por lo que cada vez que un cliente de Maven solicitara solr-core 4.0-SNAPSHOT, obtendría la misma versión, incluso si hubiera una más nueva en sentido ascendente.

También me gustaría saber cómo actualizar explícitamente a la última 4.0-SNAPSHOT, pero aún mantener todas las versiones anteriores que se descargaron.

Específicamente, el repositorio "Instantáneas Apache" es el predeterminado que viene configurado al instalar Nexus.

Respuesta

3

Cuando se implementa una instantánea en un servidor de repositorio, cada nueva implementación se implementa realmente como una versión con marca de tiempo con un número de iterador adjunto. Si desea utilizar una versión específica, solo use la versión de la marca de tiempo de la instantánea en lugar de -SNAPSHOT.

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

podría utilizar este artefacto como

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

que cambiarlo cada vez que una nueva instantánea se despliega o se puede utilizar

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

que permanecer igual. Sin embargo, tenga en cuenta que un repositorio de instantáneas NO es estático por naturaleza y estos artefactos podrían desaparecer por completo. Solo haga eso si está utilizando un servidor de repositorio interno que puede controlar y, por lo tanto, asegúrese de que esas instantáneas no desaparezcan.

Otra forma de hacerlo es cortar una versión y usar eso ..

3

Puede usar el versions maven plugin para fijarlo a una versión particular de SNAPSHOT, que solo es válida, siempre que SNAPSHOT esté disponible en el repositorio adecuado. Pero recomendaría usar un administrador de repositorio y obtener SNAPSHOT en un repositorio local y trabajar con ellos en su lugar. Lo que también es posible es obtener una SNAPSHOT en particular y hacer una versión interna de la misma para exmaple 4.0.1-INTERNAL like y hacerla más disponible en función de eso.

+0

+1 No tenía conocimiento de esta característica. ¡Muy útil! –

Cuestiones relacionadas