2011-02-02 28 views
10

estoy usando Apache Maven 3.0 Nexus Open Source Edition, Versión: 1.8.0.1experto-metadata.xml no se actualiza cuando se despliega al nexo

esto es parte de mi pom.xml

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.5</version> 
</plugin> 
<plugin> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.1</version> 
</plugin> 

<distributionManagement> 
    <repository> 
    <id>nexus</id> 
    <name>nexus</name> 
    <url>http://myrepo/nexus/content/repositories/releases</url> 
    </repository> 
</distributionManagement> 

es un proyecto muy simple. cuando lo hago

mvn release:prepare 
    mvn release:perform 

todo funciona bien:

... 
[INFO] [INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ simple --- 
[INFO] Uploading: http://myrepo/nexus/content/repositories/releases/...pom 
[INFO] 4 KB 
[INFO] 5 KB 
[INFO]   
[INFO] Uploaded: http://myrepo/nexus/content/repositories/releases/....pom (5 KB at 1.0 KB/sec) 
[INFO] Downloading: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml 
[INFO] 603 B 
[INFO]   
[INFO] Downloaded: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml (603 B at 1.5 KB/sec) 
[INFO] Uploading: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml 
[INFO] 634 B 
[INFO]   
[INFO] Uploaded: http://myrepo/nexus/content/repositories/.../maven-metadata.xml (634 B at 1.6 KB/sec) 

Ahora puedo descargar http://myrepo/nexus/content/repositories/.../maven-metadata.xml que se parece a esto:

<metadata> 
<groupId>simple</groupId> 
<artifactId>simple</artifactId> 
<versioning> 
<latest>0.5.8</latest> 
<release>0.5.8</release> 
<versions> 
<version>0.5.9</version> 
<version>0.1</version> 
<version>0.3</version> 
<version>0.4</version> 
<version>0.5.1</version> 
<version>0.5.2</version> 
<version>0.5.3</version> 
<version>0.5.4</version> 
<version>0.5.5</version> 
<version>0.5.6</version> 
<version>0.5.7</version> 
<version>0.5.8</version> 
</versions> 
<lastUpdated>20110202190804</lastUpdated> 
</versioning> 
</metadata> 

mi versión que acaba de publicar la última y no está marcado como "última " y liberar".

Ahora hago "Reconstruir metadatos" dentro de Nexus WebUI. Descargo metadatos después de esto nuevamente. Ahora se ve así

<metadata> 
    <groupId>simple</groupId> 
    <artifactId>simple</artifactId> 
    <versioning> 
    <latest>0.5.9</latest> 
    <release>0.5.9</release> 
    <versions> 
     <version>0.1</version> 
     <version>0.3</version> 
     <version>0.4</version> 
     <version>0.5.1</version> 
     <version>0.5.2</version> 
     <version>0.5.3</version> 

     <version>0.5.4</version> 
     <version>0.5.5</version> 
     <version>0.5.6</version> 
     <version>0.5.7</version> 
     <version>0.5.8</version> 
     <version>0.5.9</version> 

    </versions> 
    <lastUpdated>20110202191117</lastUpdated> 
    </versioning> 
</metadata> 

Parece un error en nexus o en maven? ¿Alguien tiene una solución para esto?

+1

sugeriría a discutir en listas de correo Maven. –

+6

Stackoverflow es simplemente genial para preguntas como esta. La razón principal para que Stackoverflow no esté suscrito en101 + listas de correo. – Janning

+0

Sí ... parece un error. ¿Ha comprobado si hay algo en el rastreador de problemas sobre esto? –

Respuesta

6

¿Ha intentado configurar updateReleaseInfo como verdadero en la configuración del complemento deploy?

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
     <updateReleaseInfo>true</updateReleaseInfo> 
    </configuration> 
</plugin> 

Tenga en cuenta, no he probado esto, acaba de pasar a tener el plugin de desplegar documentos abiertos cuando leí esta pregunta y parece razonable.

Desde el Maven docs:

updateReleaseInfo: 
Parameter used to update the metadata to make the artifact as release. 

Type: boolean 
Required: No 
Expression: ${updateReleaseInfo} 
Default: false 
+1

Intenté esto pero no creo que sea una solución. De hecho, esto solo forzará '' en 'maven-metadata.xml' para establecerse en la versión que esté cargando, incluso si ti termina en -SNAPSHOT. No actualiza ÚLTIMA palabra en absoluto. –

+0

@ Xan, creo que solo querrías usar esa configuración si estuvieras haciendo un lanzamiento, no para despliegues de instantáneas. Hay 2 formas de hacer esto; Incluya la configuración que se muestra dentro de un '' que active para las versiones (por ejemplo, 'mvn -Prelease release: perform' donde' -Prelease' activa el perfil con ID "release". O puede omitir la configuración de implementación y usar 'mvn -DupdateReleaseInfo = true release: perform' que hace lo mismo. – user944849

+4

Creo que nadie está hablando de realizar un lanzamiento aquí, el problema es por qué los metadatos no se actualizan?!? Tengo que ejecutar un trabajo cada 30 segundos en Nexus para actualícelo o nunca podré obtener el artefacto MÁS RECIENTE. De hecho, implementé un trabajo para la integración continua en Hudson para implementar el último artefacto construido con éxito. El problema es que los metadatos no tienen la etiqueta MÁS RECIENTE establecida correctamente. –

Cuestiones relacionadas