intellij idea - idea - Construcción con Lombok''s @ Slf4j e Intellij: no se puede encontrar el registro de símbolos
intellij idea code templates (7)
Tengo un proyecto maven que se desarrolla sin problemas desde la línea de comandos. Sin embargo, cuando lo construyo con IntelliJ, obtengo el error:
java: FileName.java:89: cannot find symbol
symbol : variable log
No hay ningún registro definido o importado en el archivo java, pero hay un
@Slf4j
final public class FileName {
declaración ante el cuerpo de la clase que debe definir la clase de registro.
En la ventana de estructura del proyecto, clases para:
Maven: org.slf4j:jcl-over-slf4j:1.6.1
Maven: org.slf4j:slf4j-api:1.6.6
Maven: org.slf4j:slf4j-log4j12:1.6.6
Maven: org.slf4j:slf4j-simple:1.6.6
se enumeran en las bibliotecas y se indican como descargadas y disponibles.
¿Alguna idea de por qué esto se construiría con maven a través de la línea de comandos, pero no a través de IntelliJ y cómo resolver el problema?
Acabo de instalar la última versión verion 2108.1 y encontré este problema, después de instalar el complemento lombok y reiniciar Idea lo resolvió.
Además de tener el plugin de Lombok instalado (v0.5 para IntelliJ 12), también asegúrese de que la casilla de verificación "Habilitar el proceso de anotación" esté marcada debajo: Preferencias -> Compilador -> Procesadores de anotación
En IDEA 13 esto parece no ser más un problema, solo tiene que tener instalado el plugin de Lombok.
Estaba viendo este problema con una versión anterior de Lombok cuando compilaba bajo JDK8. Volver a establecer el proyecto en JDK7 hizo que el problema desapareciera.
Podría estar desgranando un tema muerto, pero una solución simple es verificar tus dependencias (por ejemplo, Maven''s pom) si estás incluyendo logback-core y logback-classic .
Slf4j es solo la interfaz, necesita la implementación concreta para funcionar.
Me han engañado dos veces con IDEA arruinándolo, ahora estoy listo para ir: D
Presumiblemente, esa es la anotación Lombok @ Slf4j que estás usando. Tendrá que instalar el plugin de Lombok en IntelliJ si desea que IntelliJ reconozca las anotaciones de Lombok. De lo contrario, ¿qué esperas si intentas usar un campo que no existe?