java - provided - mvn install
Maven: no se pudo leer el descriptor de artefacto (21)
Espero que alguien me pueda ayudar con un problema con el que estoy luchando.
Cuando intento construir mi proyecto desde la terminal obtengo este error:
Failed to read artifact descriptor for com.morrislgn.merchandising.common:test-data-utils:jar:0.3b-SNAPSHOT: Could not find artifact com.morrislgn.merchandising:merchandising:pom:0.3b-SNAPSHOT
El common.test-data-utils
es creado por un proyecto separado y compartido entre este y otro proyecto (el otro proyecto tampoco se construye, pero eso se debe a otro problema).
Puedo construir com.morrislgn.merchandising.common:test-data-utils
sin problema, puedo ver la entrada que hace en el repositorio local .m2
en mi máquina. También reindexé mi repositorio en Eclipse.
El POM para mi proyecto tiene esta entrada:
<dependency>
<groupId>com.morrislgn.merchandising.common</groupId>
<artifactId>test-data-utils</artifactId>
<version>0.3b-SNAPSHOT</version>
</dependency>
Lo cual parece ser correcto para mí: el POM tampoco informa ningún error cuando se lo visualiza en Eclipse.
¿Puede alguien decirme lo que me falta aquí o lo que estoy haciendo mal?
Empecé a usar STS Eclipse por primera vez con Maven. El proyecto que configuré ya tenía su propia configuración.xml. Si este es el caso, querrá actualizar su archivo settings.xml en la configuración de ejecución.
haga clic derecho en pom.xml y "Ejecutar como" -> "Ejecutar configuraciones ..."
donde dice "Configuración de usuario", haga clic en el botón Archivo y agregue el archivo settings.xml.
Creo que esto es específico para su proyecto, pero mis "Metas" están configuradas para "instalar limpiamente" y revisé "Saltar pruebas".
Este problema puede ocurrir si tiene algunos proyectos secundarios que hacen referencia a un pom padre y no los ha instalado desde el directorio padre pom (ejecute mvn install
desde el directorio padre). Uno de los proyectos secundarios puede depender de un proyecto hermano y cuando va a leer el pom del hermano, fallará con el error mencionado en la pregunta, a menos que lo haya instalado desde el directorio principal de pom al menos una vez.
Acabo de toparme con este problema al mover un proyecto a una computadora nueva. Tenía la costumbre de ejecutar comandos desde el proyecto secundario y no ejecuté la instalación en el padre.
Los problemas de "error al leer el descriptor de artefactos" generalmente indican un problema con el archivo pom de la dependencia en el repositorio de maven. Le sugiero que compruebe dos veces si el nombre del archivo pom es el mismo con el nombre que espera Maven, y también para verificar si el contenido del archivo pom es válido.
Menciona dos groupIds diferentes, com.morrislgn.merchandising.common
y com.johnlewis.jec.webpim.common
. quizá este es el problema.
No tuve ninguna suerte de actualización a través de eclipse. Tuve que usar mvn clean install -U (que resolvió todo).
Para mí, estaba relacionado con la configuración de "User Setting.xml" en el interior
Window > preferences > Maven > User Settings > and then browsing to the user Settings inside the { maven unarchived directory / }/apache-maven-2.2.1/conf/settings.xml .
Para mí, parece que realmente ha sido un problema con la dependencia POM.
Trabajé alrededor usando el repositorio virtual jitpack, con el cual puedes incluir repositorios github basados en su URL en lugar de su propio POM (que parece haber sido erróneo en mi caso).
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
Resolví este problema al eliminar en las carpetas del repositorio donde se mostraba este error, todo excepto los archivos .jar y .pom.
Resolví este problema cambiando el maven setting.xml y el repositorio
Sé que llegué bastante tarde a la conversación, pero también tuve este problema. Creo que el problema era el firewall de mi empresa. Mi solución fue desconectarme de la red, conectarme a nuestra red inalámbrica abierta y forzar una actualización a través de Eclipse. Esto resolvió todo.
Si está utilizando Eclipse, haga clic con el botón derecho en su proyecto -> Maven -> Actualizar proyecto . Se abrirá el cuadro de diálogo Actualizar proyecto Maven.
En ese cuadro de diálogo, marque la casilla Force Update of Snapshots / Releases & haga clic en OK . (Por favor, consulte la imagen a continuación)
¡Esto funcionó para mí!
Si está utilizando eclipse, haga clic con el botón secundario en project -> properties -> Maven y asegúrese de que no se hace clic en " Resolver dependencias de los proyectos del área de trabajo ".
Espero que esto ayude.
Siempre puedes probar mvn -U clean install
-U
Obliga a verificar versiones actualizadas e instantáneas en repositorios remotos
Tengo un proyecto
A/
|--a1
|--a2
Ahora hay otro proyecto en nuestra organización
B/
|--b1
|--b2
|--b3
(Cada módulo a1, b1 etc. y los proyectos principales A, B tienen su propio pom.xml según las reglas maven estándar de padres e hijos)
Ambos proyectos se comprueban en mi eclipse local (desde SVN). Estoy trabajando activamente en A.
Llegué a saber que hay una buena funcionalidad común (b4) desarrollada en B y que necesitaba usarla.
B/
|--b1
|--b2
|--b3
|--b4 (NEW)
El desarrollador de b4 ha implementado este módulo b4 como un artefacto en el repositorio de nuestra organización. Incluí la dependencia al POM de mi módulo, es decir, pom.xml de a2. Eclipse descargó el artefacto reuqired del repositorio y pude importar las clases en él.
Ahora comienza el problema ... Necesitaba verificar el código fuente de b4 para algún propósito y como ya había comprobado B en mi eclipse local, lo actualicé desde SVN y revisé el módulo b4. También ejecuté pom.xml del módulo b4 con objetivos como clean, package, etc. Después de un tiempo cuando terminé mi codificación, necesitaba crear un JAR de mi módulo a2. Ejecuté "paquete" en a2''s pom.xml y BAM !! errores n errores para el módulo a2. Estos errores tampoco fueron muy fáciles de usar. Lo único que hay es que el nombre de b4 está seguro en los registros.
Solución: Después de probar muchas soluciones durante muchas horas, ejecuté "mvn -U clean install" desde la consola en el directoty del proyecto de mi B (es decir, en ../codebase/B). Como B es el padre, el comando de instalación limpia se ejecutó para todos los módulos, incluido b4, y se ejecutó correctamente. Después de esto, ejecuté "mvn -U clean install" para mi proyecto principal, que es A. ¡Y funcionó! El módulo a2 se compiló, instaló, (empaquetó luego) con éxito.
Aquí el punto importante fue si b4 está en su área de trabajo, no solo instale b4. Necesitará limpiar e instalar B. Llegué a esta solución después de leer la respuesta de Zuill
EDITAR: Una cosa más aquí para notar que si no tuviera el proyecto B desprotegido en el entorno local, entonces este problema podría no haber ocurrido para mí. Tiendo a pensar que esto sucedió porque revisé B en mi espacio de trabajo local.
Tuve el mismo problema al usar IntelliJ. Lo resolví haciendo clic derecho en pom.xml> Maven> Reimportar
Tuve el mismo problema con Eclipse donde la línea de comandos de construcción maven funcionó bien, pero prueba esto
- entrar en .m2 / repository y borrar el directorio asociado
- ejecutar actualización maven dependencias en eclipse
El error desaparece ... ¿por qué mi línea de comandos de mvn funcionaba con esos directorios? Y eclipse .m2eclipse no podía, no tengo ni idea y es una mierda. Mi proyecto ahora está trabajando en eclipse nuevamente.
Tuve el mismo problema por un tiempo y, a pesar de hacer mvn -U clean install
el problema no se solucionó!
Finalmente resolví el problema borrando toda la carpeta .m2
y luego reinicié mi IDE y el problema desapareció.
Entonces, a veces el problema aumenta debido a algunas incompatibilidades o problemas en su repositorio Maven local.
Tuve este problema en eclipse, mvn -U clean install
no funcionó, pero al hacer clic derecho en el proyecto y seleccionar Maven-> Update Project lo arregló.
Tuve un problema similar. En mi caso, la versión de testng en mi carpeta .m2 / repositories estaba dañada, pero cuando la eliminé y realicé una actualización de maven, todo funcionó bien.
Error de referencia de Maven "Error al transferir ..."
find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} /; -print -exec rm {} /;