IntelliJ con compilación Maven

9

Tengo un proyecto que necesita frascos de Hibernate.

Los agregué como dependencias en pom.xml y Maven compila bien mi proyecto.

Sin embargo, en el IDE, todas las anotaciones y llamadas a la API de Hibernate están marcadas como no resueltas (rojo).

¿Cómo podría hacer que IntelliJ pueda resolverlos?

¿Hay alguna manera de usar Maven cuando hago clic en Build Project? (Ctrl + F9)

Además, estoy confundido con el concepto de facetas dentro de IntelliJ. ¿Los necesito, digamos facetas JPA para habilitar el asistente de persistencia, etc., o hay una opción para dejar que Maven se preocupe?

Mik378
fuente
1
¿Eliminar el proyecto de IntelliJ y volver a importarlo ayudaría?
@ Thorbjørn Ravn Andersen Lo hice, lo mismo no funciona.
Mik378
Para ser más preciso, uso un ServletContextListener, así que necesitaba servlet-api.jar. Maven lo agregó bien, pero Intellij se queja de la clase no resuelta. Podría agregarlo con el panel de configuración de IDE como dependencia, pero al hacerlo no encontraría ningún beneficio de tener Maven .....
Mik378
2
Las clases necesarias para la compilación pero que proporciona el contenedor web deben mencionarse con<scope>provided</scope>
1
Finalmente, elimino completamente (del disco también ^^) mis proyectos y los recreé. Y Abracadabra, Maven funciona :) ¡Gracias por tu ayuda! :)
Mik378

Respuestas:

8

Borrar el caché o reimportar

A veces Intellij se enreda en proyectos. Cuando eso sucede, el enfoque general es el siguiente:

  1. Prueba Build | Proyecto de reconstrucción
  2. Si no, compruebe que el proyecto se compilará desde la línea de comando
  3. En caso afirmativo, utilice Archivo | Invalidar cachés seguido de Construir | Reconstruir todo
  4. En caso negativo, elimine los archivos de su proyecto local y revíselos del control de versiones una vez más utilizando pom.xml como archivo de proyecto.
  5. Si no, entonces hay un problema serio con su instalación de Intellij
Gary Rowe
fuente
stackoverflow.com/a/11467266/32453 también enumera algunos pasos aún más agresivos.
rogerdpack