Tengo un proyecto maven que se construye sin problemas desde la línea de comandos. Sin embargo, cuando lo construyo con IntelliJ, aparece el error:
java: FileName.java:89: cannot find symbol
symbol : variable log
No hay un registro definido o importado en el archivo java, pero hay un
@Slf4j
final public class FileName {
declaración antes del cuerpo de la clase que debería 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 bibliotecas y se indican como descargados y disponibles.
¿Alguna idea de por qué esto se compilaría con maven a través de la línea de comando, pero no a través de IntelliJ y cómo resolver el problema?
intellij-idea
slf4j
lombok
user1991839
fuente
fuente
Respuestas:
Además de tener instalado el complemento Lombok , también asegúrese de que la
Enable annotation processing
casilla de verificación " " esté marcada debajo de:Nota: a partir de IntelliJ 2017, la
Enable Annotation Processing
casilla de verificación " " se ha movido a:fuente
Presumiblemente, esa es la anotación de Lombok @ Slf4j que estás usando. Deberá instalar el complemento Lombok en IntelliJ si desea que IntelliJ reconozca las anotaciones de Lombok. De lo contrario, ¿qué espera si intenta utilizar un campo que no existe?
fuente
En Intellij versión 2016, 2017, habilite Preferencias -> Compilador -> ¡Los procesadores de anotaciones no funcionan para mí!
La siguiente casilla de verificación adicional ayuda:
fuente
2019:
Obtenga un complemento y estará ordenado ...
Archivo> Configuración> Complementos
fuente
Podría estar desgranando un tema muerto, pero una solución simple es verificar sus dependencias (pom de Maven, por ejemplo) si está incluyendo logback-core y logback-classic .
Slf4j es solo la interfaz, necesita la implementación concreta detrás para que funcione.
Me engañaron dos veces con IDEA arruinándolo, ahora estoy listo para comenzar: D
fuente
¡¡¡Trabajó para mi!!! También estaba fallando en CircleCI y en Jenkins.
Si es un usuario de Gradle, intente agregar lo siguiente a sus dependencias:
fuente
En IDEA 13, esto parece no ser un problema, solo tiene que tener instalado el complemento Lombok.
fuente
Acabo de instalar la última versión de idea 2108.1 y encontré este problema, después de instalar el complemento lombok y reiniciar la idea, resuélvelo.
fuente
Si está utilizando maven, intente agregar la ruta de Lombok a la
maven-compiler-plugin
lista de procesadores de anotaciones como se muestra a continuación.Cambie la versión según su versión de Lombok. Aparte de eso, asegúrese de haber hecho lo siguiente
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
. Para mí ambos,Obtain processors from project classpath
yProcessor path
está funcionando. Así que no estoy seguro de qué funcionará para usted, pero intente lo que funcione.Y en lugar de disparar en la oscuridad durante horas. Leer un poco cómo funcionan los procesadores de anotaciones y cómo los usa el compilador puede ayudar. así que lea rápidamente a continuación.
http://hannesdorfmann.com/annotation-processing/annotationprocessing101
fuente
Esto funcionó para mí:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
Marque 'habilitar procesamiento de anotaciones'.
Apply
Cerca
fuente
Probé casi todas las respuestas mencionadas, pero nada funcionó para mí. Mi compilación de Gradle fallaba todo el tiempo. Acabo de encontrar esta solución:
Agregue
annotationProcessor 'org.projectlombok:lombok'
su build.gradle.Esto funcionó para mí.
fuente
Eliminar la anotación @ Slf4J de la clase y luego volver a agregarla funcionó para mí.
fuente
1 Mis dependencias de gradle lombok:
2 Después de habilitar "Anotaciones ..." en IDEA (Configuración), teniendo en cuenta que instaló el complemento Lombok, se resolvió el mismo problema
fuente
Veía este problema con una versión anterior de Lombok al compilar bajo JDK8. Volver a configurar el proyecto en JDK7 hizo que el problema desapareciera.
fuente
Este no habrá sido un problema de OP, pero para cualquier otra persona que lo intente todo sin éxito:
Tuve síntomas similares. Siempre que construía después de a
mvn clean
, no encontrabalog
, nigetXYZ()
, nibuilder()
, ni nada.Después de leer todas las respuestas que pude encontrar sobre problemas de QueryDSL / JPA / Hibernate / Lombok / IntelliJ / Maven en vano, descubrí que el culpable era una única importación estática de un
@Getter
método que estaba anotado en un campo estático .Primavera 1.15.14.RELEASE, Intellij 2019.1.1
fuente
No es un problema de IntelliJ. Si lo intenta en la consola, ejecute mvn install , también se rompe. Todas las anotaciones de lombok.extern necesitaban agregar dependencias. Este paquete agrupa las siguientes anotaciones:
Por ejemplo, para Slf4j es necesario agregar esta dependencia a su pom.xml
fuente
Después de habilitar los procesadores de anotaciones e instalar el complemento lombok, aún no funcionaba. Lo solucionamos marcando la opción Idea "Delegar compilación de IDE en gradle"
fuente
Lo que solucionó las cosas para mí fue marcar la casilla de verificación "Usar registro de complementos" en la configuración de Maven.
La ruta es: Archivo -> Preferencias -> Compilación, ejecución, implementación -> Herramientas de compilación -> Maven
fuente
Elimine la carpeta .idea y los archivos .iml en cada módulo y reconstruya la solución.
fuente
Tenía el complemento de Lombok, las anotaciones habilitadas, se estaba compilando desde la línea de comandos, todo y todavía no veía mi proyecto como maven (todas las dependencias de maven estaban en rojo en los archivos fuente). Luego hice clic en MAYÚS dos veces y busqué 'maven' y entre los resultados estaba 'Recargar todos los proyectos de Maven'. Después de ejecutarlo, apareció la pestaña Maven y pude compilar, y todo el subrayado rojo en el código fuente desapareció.
fuente
Una cosa simple, pero lo descubrí es: me perdí agregar
@Log
a la clase.Puede ayudar a alguien.
fuente
Tengo el mismo problema; Yo uso gradle e IDEA;
Resulta que es causado por la versión incorrecta de gradle.
En gradle \ wrapper \ gradle-wrapper.properties, es:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
Sin embargo, especifiqué que la versión en IDEA sería
D:\Library\gradle-5.2.1
Después de bajar la versión de Gradle a 4.10.x, el problema desapareció.
fuente
Intente crear un
lombok.config
archivo en el directorio base del proyecto y proporcionelombok.log.fieldName
valor.Ejemplo:
lombok.log.fieldName = LOG
fuente