maven - una - No se pudieron encontrar los metadatos en local
ver metadatos de un archivo (2)
Localmente en la máquina tengo un Artifactory instalado con repositorios maven, y tengo un archivo .pom muy simple para mi proyecto que lo señala:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MYGROUP</groupId>
<artifactId>NAME</artifactId>
<packaging>jar</packaging>
<version>VERSION</version>
<build>
<sourceDirectory>SRCFOLDER</sourceDirectory>
<testSourceDirectory>TESTFOLDER</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>local-artifactory</id>
<name>Artifactory</name>
<url>http://localhost:8081/artifactory/repo</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>local-artifactory-plugins</id>
<name>Artifactory Plugins</name>
<url>http://localhost:8081/artifactory/repo</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>MYGROUP</groupId>
<artifactId>DEPENDENCY1</artifactId>
<version>bla-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>MYGROUP</groupId>
<artifactId>DEPENDENCY2</artifactId>
<version>bla-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
Así que he declarado el repositorio de artefactos locales con la intención de que vuelva a cargar todo cada vez. También tengo un par de dependencias que son SNAPSHOTS.
Ahora estoy usando maven 3.0.5, y cuando lo estoy compilando funciona bien, pero no es instantáneas refrescantes en absoluto. Nunca. Nunca. El archivo de registro se ve así:
[DEBUG] Could not find metadata MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml in local (/opt/myuser/.m2/repository)
[DEBUG] Using connector WagonRepositoryConnector with priority 0 for http://localhost:8081/artifactory/repo
Downloading: http://localhost:8081/artifactory/repo/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/maven-metadata.xml
Downloaded: http://localhost:8081/artifactory/repo/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/maven-metadata.xml (314 B at 13.9 KB/sec)
[DEBUG] Writing resolution tracking file /opt/myuser/.m2/repository/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/resolver-status.properties
[DEBUG] Could not find metadata MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml in local (/opt/myuser/.m2/repository)
[DEBUG] Skipped remote update check for MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml, already updated during this session.
Por lo tanto, se queja constantemente de que no puede encontrar local maven-medatada.xml y, por supuesto, tiene toda la razón, no está allí. Y no puede hacer NADA con eso.
Así que he intentado usar la dependencia: purge-local-repository para purgar el inventario local y ¿adivinen qué? Aparentemente no puede purgarlo porque no hay maven-metadata.xml en cada artefacto, ¡qué increíble funcionalidad!
Cada directorio de artefactos .m2, aparte de .jar y .pom, contiene maven-metadata-local-artifactory.xml (con la copia correcta de maven-metadata.xml del artifactory, current), _mave.repositories y resolver-status.properties.
Maven está recién salido de la caja, no hay configuración en .m2 y la configuración en la carpeta / conf está predeterminada sin ningún cambio.
ACTUALIZACIÓN: Acabo de descargar manualmente maven-metadata.xml desde el artefacto y lo coloqué como maven-metadata.xml dentro de .m2 para una dependencia, sin efecto, aún "falta". Entonces ya no tengo idea de qué es lo que quiere de mí. Simplemente no puede actualizar dependencias porque "ya se actualizó durante esta sesión". Bueno, no sé qué se actualizó exactamente, pero aparentemente algo más.
ACTUALIZACIÓN2: contenido de maven-metadata.xml en el servidor:
<metadata>
<groupId>MYGROUP</groupId>
<artifactId>DEPENDENCY1</artifactId>
<version>bla-SNAPSHOT</version>
<versioning>
<snapshot>
<buildNumber>1</buildNumber>
</snapshot>
<lastUpdated>20130322155759</lastUpdated>
</versioning>
</metadata>
Desde el archivo xml de metadatos maven, parece que está utilizando una instantánea no única en su repositorio. Maven 3 no es compatible con el archivo pom snapshot no único, con TIMESTAMP-BUILDNUMBER en lugar de SNAPSHOT. Tienes:
http://localhost:8081/artifactory/repo/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/DEPENDENCY1-bla-XXXXX-Y.pom
¿archivo?
Mi experto se quejó de que no puede encontrar los metadatos en local, bla, bla ... y básicamente, lo que sucedió es que logré desconectar mi cable de alimentación en mitad de maven-build y sus metadatos en el subdirectorio .m2 correspondiente se dañaron. Entré, eliminé los artefactos en cuestión de su ubicación .m2 y volví a probar la compilación. Todo funcionó bien. Solo quería dejar este mensaje para aquellos que tienen un problema similar al mío, pero tropecé con su pregunta.