En uno de mis proyectos de Maven, la resolución de dependencias tendrá éxito una vez, a continuación, dejar para más adelante construir intentos:Maven 3 resolución dependiente falla hasta que se eliminen los archivos experto en metadatos-local.xml [relacionados con maven-invocador-plugin]
[WARNING] The POM for commons-logging:commons-logging:jar:1.1.1 is missing, no dependency information available
[WARNING] The POM for commons-httpclient:commons-httpclient:jar:3.1 is missing, no dependency information available
[WARNING] The POM for javax.mail:mail:jar:1.4.4 is missing, no dependency information available
... y así sucesivamente, hasta que elimino las maven-metadata-local.xml
archivos correspondientes a los artefactos en su defecto (por ejemplo ~/.m2/repository/commons-logging/commons-logging/maven-metadata-local.xml
). Después de eliminar esos archivos, la invocación siguiente mvn
procede correctamente; los archivos de metadatos son restaurados por esa invocación (presumiblemente como parte del proceso de verificación de mis repositorios/espejos ascendentes para artefactos actualizados), y nuevamente me presentan los errores anteriores hasta que elimine nuevamente los archivos de metadatos.
Esto afecta múltiples proyectos, a pesar de que parece estar limitada a un determinado conjunto de dependencias. Supongo que podría volverme nuclear y volar mi repositorio local, pero me gustaría entender cuál es el problema.
¿Pensamientos?
Actualización: Parece como si fuera la maven-invoker-plugin (que estas formaciones están utilizando para las pruebas de integración de propósito general) que está produciendo estos maven-metadata-local.xml
archivos. No estoy usando un repo local de integración de pruebas de sólo as described here, simplemente porque al hacerlo provoca que el re-descarga de todas las dependencias transitivas (unless you want to maintain an integration-specific settings.xml file!!!). He utilizado el plugin invoker con una variedad de otros proyectos de esta manera con buenos resultados, sin encontrar nunca un repositorio local en el proceso como este.
Actualización 2 Bueno, esto es repetible, incluso después de comenzar con un repositorio local completamente nuevo. Esto está en OS X, Java 1.6.0_24 con Maven 3.0.3; Tenga en cuenta que Maven 2.2.1 hace NO tiene este problema.
Aquí está uno de los proyectos en cuestión: la 1.3.0-compat branch of rummage. Para reproducir:
> mvn clean test
# no error -- can run this and other builds that don't involve maven-invoker-plugin all day w/o problems
> mvn clean integration-test
# FAIL: "Could not resolve dependencies", with warnings as noted above
> mvn clean test
# FAIL: "Could not resolve dependencies", with warnings as noted above
Una vez que se borked el repositorio local (por la generación de los archivos, maven-metadata-local.xml
AFAICT), no se construye superar la fase de resolución de dependencias.
Correr mvn -X
revela líneas de este tipo por cada artefacto que es posterior al parecer, no se encontró:
[DEBUG] Verifying availability of /Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.jar from []
Por supuesto, /Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.jar
et al. existe, al igual que /Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.pom
. Totalmente desconcertado. En este punto, asumo que esto es un error en Maven 3 (o en alguna biblioteca subyacente), ahora que veo que 2.2.1 está limpio.
Actualización 3Bug report filed with Maven project.
Sí, -U solo comprueba SNAPSHOTS AFAIK; dicho eso, sí, lo intenté, pero fue en vano. – cemerick