java eclipse maven pom.xml

java - Error al abrir la jerarquía de dependencias de archivos Maven POM en Eclipse: "Error de lectura del proyecto"



pom.xml (8)

Dada la información a través de los comentarios:

mvn compile / mvn package work a través de la consola (supongo que fuera de eclipse). En base a eso, el archivo POM debe ser correcto y las dependencias pueden resolverse.

Sin embargo; Podría ser que los ajustes de eclipse no sean correctos. Por ejemplo, si eclipse tiene algunas propiedades propias de Maven (en lugar del archivo predeterminado ~ / .m2 / settings.xml); Me lo imagino fallando en la resolución de dependencias configuradas en la configuración.xml utilizada por el propio maven. La configuración para esto debe estar en Preferencias de Eclipse @ Maven> Configuración de usuario.

También asegúrese de que Eclipse pueda leer el archivo (no bloqueado, derechos correctos, etc.).

Si esto parece ser correcto; ¿Puedes tratar de ejecutar el compilador mvn goal desde eclipse? Puede hacer esto haciendo clic con el botón derecho en el proyecto y seleccionando run as > maven package . De esa manera, debe ejecutarse maven con la misma configuración que eclipse está usando, y puede mostrar cualquier error adicional en su configuración.

- En respuesta a información adicional:

Básicamente, le dice a usted, cuando usa Maven 2, que no puede encontrar un recurso de dependencia (en este caso, bcprov-jdk14) en el repositorio dado (codehaus / mule). Cuando busco ese módulo de Maven (bcprov-jdk14) lo encuentro en el repositorio central de Maven (a través de nuestro nexo local) @ repo1.maven.org/maven2 . Tal vez eso causa el error que está recibiendo con Maven2?

Y como dice el doc de Maven 3; para Maven 1.x repo; debe usar un administrador de repositorio que puede servirlo como un repositorio de Maven 2 (creo que también lo hacemos aquí para algunos repositorios a través de Sonatype Nexus OSS)

ps .: Habilitar la gestión de dependencias de Maven en eclipse debería ser suficiente para poder utilizar los objetivos de ejecución de Maven; Si quieres probarlo.

-

Suena como que puede ser un problema múltiple ... dado que la construcción del experto normal funciona bien, uno pensaría que el experto puede al menos obtener los artefactos de los que depende y sus dependencias ... Sin embargo, el eclipse no parece ser capaz de .

¿Comprueba si la configuración de la conexión a Internet de Eclipse es correcta? Ya que estaba hablando sobre un repositorio de la empresa, asumo que probablemente también habrá un proxy (tuve que configurar mi Eclipse para usar ese también; aunque para los complementos (vea el siguiente punto)).

Otra posibilidad, por experiencia, puede ser un bloqueo de proxy basado en reglas en las solicitudes de url * .pom (nuestro proxy aquí bloquea eso para forzar el uso del administrador de repositorio local, lo malvado y molesto que es :(). Tal vez desee probar y abra el archivo .pom que intenta descargar manualmente en su navegador para ver si este es el caso (no puedo, por ejemplo ...).

Para configurar el repositorio, probablemente tenga que pedirle al responsable del repositorio que lo agregue como un proxy maven2.

Por lo menos, parece que Eclipse está teniendo problemas para obtener los poms de dependencia (que son necesarios para construir el árbol de dependencia) de Internet. Siempre puede intentar preguntarle a algún equipo de ICT (si son lo suficientemente capaces ...) sobre esto en su empresa, tal vez tengan algunos consejos útiles.

Cuando abro un archivo POM y hago clic en la pestaña "Jerarquía de dependencia" en la parte inferior, aparece el error "Error de lectura del proyecto". Funciona con otros proyectos en el mismo espacio de trabajo, pero no con este. ¿Algunas ideas?

EDITAR

En respuesta a la respuesta de @Yhn.

  1. Ejecutar las fases de compilación y paquete fuera de Eclipse desde el trabajo de línea de comandos como se esperaba. Compila la aplicación y construye el archivo WAR final.
  2. Eclipse de hecho apunta a la ubicación predeterminada del archivo settings.xml de Maven, por lo que debe ser consciente de los repositorios personalizados que están definidos en él (mi compañía tiene su propio repositorio de Maven).
  3. Puedo abrir y editar el archivo POM desde Eclipse, por lo que debe tener permisos de lectura / escritura en el archivo.
  4. El proyecto no está configurado en Eclipse como un proyecto de Maven, por lo que no puedo ejecutar la fase del paquete desde Eclipse (solo puedo ejecutarlo desde la línea de comandos).

Me pregunto si tiene algo que ver con el hecho de que estaba teniendo problemas para construir el proyecto con Maven 3 porque aparentemente algunas de las dependencias transitivas están configuradas para Maven 1, que Maven 3 no admite (esta es mi teoría de todos modos, basada en algunos de los mensajes de error). Puedo construir el proyecto con Maven 2, pero todavía recibo mensajes como los siguientes:

Downloading: http://dist.codehaus.org/mule/dependencies/maven2/org/codehaus/xfie/bcprov-jdk14/133/bcprov-jdk14-133.pom [INFO] Unable to find resource ''org.codehaus.xfire:bcprov-jdk14:pom:133'' in repsitory mule (http://dist.codehaus.org/mule/dependencies/maven2)

Sin embargo, debe poder encontrar estas dependencias, ya que descargó los archivos JAR correctamente y puede generar la aplicación. Parece que el problema es que las dependencias no tienen archivos POM asociados, tal vez por eso no pueden usarse con Maven 3. También podría ser la razón por la que no puedo ver la Jerarquía de Dependencias en Eclipse.

Editar 2

Convirtí el proyecto en un proyecto de Maven yendo a "Configurar> Convertir a proyecto de Maven". Cuando abro el archivo POM, veo el error:

ArtifactDescriptorException: Failed to read artifact descriptor for woodstox:wst (Click for 140 more)

(Woodstox: wst es otra dependencia transitiva del proyecto). Aparece un error en la vista "Marcadores" para aparentemente todas las dependencias y dependencias transitivas en mi proyecto. Sin embargo, puedo construir el proyecto con éxito haciendo un "Ejecutar como> Maven construir". ( Editar: Esto podría deberse a que este proyecto no tiene un código fuente Java, pero los JAR de las dependencias aparecen correctamente en el WAR final). La Jerarquía de Dependencias todavía presenta el mismo error: "Error de lectura del proyecto".

Acerca de los mensajes "No se puede encontrar el recurso", pero esto solo aparece para un puñado de dependencias transitivas. El proyecto tiene muchas más dependencias transitivas, pero estos mensajes no aparecen para ellos. Parece que, debido a que las dependencias no tienen archivos POM, Maven intenta buscarlos cada vez que se construye el proyecto. ¿Es esto normal no tener POMs?

¿Cómo puedo conseguir un administrador de repositorio? ¿Es esto algo que debería instalarse en el repositorio Maven de la empresa o puede instalarlo en su propia estación de trabajo?


Me enfrenté a la misma situación hoy. En mi caso es causado por el nombre de dependencia en el caso equivocado. P.ej

Proyecto A -> Proyecto B -> Proyecto C En el archivo pm del proyecto B, especifiqué erróneamente el nombre de los artefactos de dependencia con "c" en lugar de "C".

Como en Mac OS, el sistema de archivos no distingue mayúsculas de minúsculas. así que puedo construirlo en la línea de comandos sin detectar este error.

En Eclipse se rompe, pero proporciona un mensaje de error muy malo. En la lista de errores, dice "problema de dependencia", pero el nombre de la dependencia está vacío. Tampoco puede identificar qué línea en el POM causa el problema.

Cuando intente abrir "POM efectivo" en el visor de POM, se mostrará un error de lectura del proyecto. En el cuadro de diálogo emergente de error, se mostrará:

Could not read maven project java.nio.channels.OverlappingFileLockException

Todos los mensajes son inútiles y engañosos.

Finalmente detecté este problema enviándolo a Jenkins CI después de perder horas de tiempo.


Por lo general, esto sucede si hay un error tipográfico en el pom que Maven no puede entender y luego arroja un Project read error . Como en mi caso, copié un fragmento de dependencia de Maven y pasé la versión. En lugar de escribir la versión real #, estaba obteniéndola dinámicamente ${asciidoctorj.version} y mi pom no tenía esto en la sección de propiedades. Así que tengo este error. Una vez que quité eso y puse un número de versión comenzó a funcionar.


Tuve el mismo problema cuando agregué una nueva dependencia a pom.xml sin conexión de red. Después de esto, tuve muchos problemas como "Falta de artefactos", "Descriptor de falta" o "Error de lectura del proyecto". Resolví esto

  1. Eliminar la dependencia incorrecta que se acaba de agregar desde el repositorio local.
  2. reconstruir índice local.
  3. re-agregar la dependencia

Tuve este problema con algunos tarros que no eran de Maven que necesitaba incluir en mi proyecto de Maven. Puse los frascos en mi repositorio local usando este comando de Maven:

mvn install:install-file -Dfile=/test/gov.nist.xccdf-1.2.jar -DgroupId=gov.nist -DartifactId=xccdf -Dpackaging=jar -Dversion=1.2

Luego me referí a ellos como dependencias en mi pom.xml:

<dependency> <groupId>gov.nist</groupId> <artifactId>xccdf</artifactId> <version>1.2</version> <type>jar</type> <scope>compile</scope> </dependency>

Esto funcionó bien por un tiempo, pero debo haber actualizado algo en eclipse, y comencé a recibir el error que describe.

La solución es sacarlos del repositorio local y rehacer el archivo de instalación pidiéndole a maven que genere un pom para usted:

mvn -DgeneratePom=true install:install-file -Dfile=/test/gov.nist.xccdf-1.2.jar -DgroupId=gov.nist -DartifactId=xccdf -Dpackaging=jar -Dversion=1.2

El comando hará que se genere un pom en el mismo directorio (dentro de su repositorio local) donde se coloca el archivo jar.

En versiones recientes del soporte de eclipse maven, la compilación de maven todavía se realiza con maven 2 (si hace clic con el botón derecho en su archivo pom.xml, elija ejecutar como paquete mvn, por ejemplo). El análisis de dependencia ahora se realiza con un complemento de Maven 3 incorporado, que no le gusta una dependencia que no tiene pom.xml.


Tuve esto después de copiar una carpeta de repositorio local desde otra máquina. La solución fue ir a la carpeta del repositorio que copié y eliminar _remote.repositories junto con los archivos ''LastUpdated'' y luego actualizar las dependencias de Maven en Eclipse (Alt + F5)


Yo tuve el mismo problema. Si hiciste de tu proyecto un proyecto experto, deberías ejecutar:

  • Clic derecho del mouse sobre el proyecto | Maven | Actualizar Dependencias o
  • Clic derecho del mouse sobre el proyecto | Maven | Actualizar la configuración del proyecto

Eso funcionó para mí.


<properties> <!-- ********************** --> <!-- Plugin''s properties --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.7</java.version> </properties>

este ajuste pom funcionó para mí