Maven: no se pudo leer el descriptor de artefacto

Espero que alguien me pueda ayudar con un problema con el que estoy luchando.

Cuando bash 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 repository local .m2 en mi máquina. También reindexé mi repository en Eclipse.

El POM para mi proyecto tiene esta entrada:

  com.morrislgn.merchandising.common test-data-utils 0.3b-SNAPSHOT  

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?

Siempre puedes probar mvn -U clean install

-U Obliga a verificar versiones actualizadas e instantáneas en repositorys remotos

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.

Tuve el mismo problema con IntelliJ IDEA y lo siguiente funcionó.

  • Ir a File
  • Seleccione Settings
  • Seleccione Build, Execution, Deployments
  • Seleccione Build Tools desde desplegable
  • Seleccione Maven de menú desplegable
  • Marque la checkbox Always update snapshots

captura de pantalla de IntelliJ 2017.2/> Preferencias / Configuraciones> Comstackción, Ejecución, Despliegue> Herramientas de comstackción> Maven> Actualizar siempre las instantáneas (checkbox)”> </p>
</div>
</li><!-- #comment-## -->
<div class=

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.

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)

Actualizar el cuadro de diálogo del proyecto Maven

¡Esto funcionó para mí!

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.

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.

Resolví este problema al eliminar en las carpetas del repository donde se mostraba este error, todo excepto los archivos .jar y .pom.

Los problemas de “error al leer el descriptor de artefactos” generalmente indican un problema con el archivo pom de la dependencia en el repository 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.

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 repository 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 repository 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 objectives como clean, package, etc. Después de un tiempo cuando terminé mi encoding, 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.

Menciona dos groupIds diferentes, com.morrislgn.merchandising.common y com.johnlewis.jec.webpim.common . quizá este es el problema.

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 . 

No tuve ninguna suerte de actualización a través de eclipse. Tuve que usar mvn clean install -U (que resolvió todo).

Tuve el mismo problema al usar IntelliJ. Lo resolví haciendo clic derecho en pom.xml> Maven> Reimportar

Error de referencia de Maven “Error al transferir …”

 find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \; 

Para mí, parece que realmente ha sido un problema con la dependencia POM.

Trabajé alrededor usando el repository virtual jitpack, con el cual puedes incluir repositorys github basados ​​en su URL en lugar de su propio POM (que parece haber sido erróneo en mi caso).

   jitpack.io https://jitpack.io  

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 repository Maven local.

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.

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ó.

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.

  1. haga clic derecho en pom.xml y “Ejecutar como” -> “Ejecutar configuraciones …”

  2. donde dice “Configuración de usuario”, haga clic en el botón Archivo y agregue el archivo settings.xml.

  3. Creo que esto es específico para su proyecto, pero mis “Metas” están configuradas para “instalar limpiamente” y revisé “Saltar pruebas”.

En nuestro caso, el error apareció debido al incorrecto cambio de nombre de ID de grupo, mientras que algunos de los proyectos en configuración de múltiples módulos de Maven hacen referencia a otros.

Tuvimos un proyecto agregador ( billing-parent ) con dos módulos ( billing-api , billing ):

 com.company.team:billing-parent |-com.company.team:billing-api |-com.company.team:billing 

La billing proyecto depende de billing-api . Entonces en su pom.xml tenía:

  com.company.team billing-api ${project.version}  

Decidimos cambiar el nombre de groupId de com.company.team a com.company.team.billing . Reemplazamos el valor anterior en las secciones pom.xml y en los de ambos módulos. Pero se olvidó de actualizar la dependencia anterior. Así que obtuvimos la configuración en la que el proyecto de billing referencia al viejo artefacto de billing-api . Eventualmente, aumenta la creación del módulo de billing después de un tiempo con el error como

[ERROR] Failed to execute goal on project billing: Could not resolve dependencies for project com.company.team.billing:billing:jar:3.5.1-SNAPSHOT: Failed to collect dependencies at com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failed to read artifact descriptor for com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failure to find

a pesar de que el módulo billing-api se comstack sin errores.

Solución 1: cambie el nombre de groupId en la dependency también.

Solución 2: reemplace groupId por la propiedad ${project.groupId} como esta:

  ${project.groupId} billing-api ${project.version}  

Conclusión. Así que mi consejo en caso de que te encuentres con el error en la configuración de varios módulos sería: comprueba a fondo groupId y artifactId de las dependencias en los módulos vecinos.

Resolví este problema cambiando el maven setting.xml y el repository