Estoy tratando de usar Lombok en mi proyecto que estoy desarrollando usando IntelliJ IDEA 11.
He instalado un complemento de terceros para IDEA y parece funcionar bien porque IDEA ve todos los métodos / campos autogenerados.
Entonces tengo una clase que usa Slf4j. Lo anoté así
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestClass
{
public TestClass()
{
log.info("Hello!");
}
}
Pero cuando construyo mi compilador de proyectos escupe: cannot find symbol variable log
.
¿Podría decirme qué me estoy perdiendo aquí?
Actualización: Resultó que su proceso de anotación RequestFactory falla.
input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}
annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]
Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.
cannot find symbol variable log
¿Alguna idea sobre soluciones alternativas?
Actualización 2: Tal vez no sea algo que los lectores quieran escuchar, pero terminé cambiando a Scala .
java
intellij-idea
lombok
experto
fuente
fuente
Respuestas:
Lo arreglé en IDEA 12 configurando la casilla de verificación
Enable annotation processing
en:Para IDEA 2016.2:
Después de habilitar, ejecute Build -> Rebuild Project para que se reconozcan las anotaciones y se eliminen los errores.
Para IDEA 2019.2.1, dependiendo de cómo esté configurado el proyecto, la instalación del complemento Project Lombok puede no ser suficiente. Aquí hay otra forma de usar Project Lombok con IntelliJ IDEA:
$HOME/dev/java/project/libs
).lombok
$HOME/dev/java/project/libs/lombok.jar
lombok
aProject Lombok 1.18.8
.El proyecto ahora puede importar desde el
lombok
paquete y usar anotaciones de Project Lombok (por ejemplo,lombok.Setter
ylombok.Getter
).fuente
Habilitar el procesamiento de anotaciones lo hará funcionar
Pero si está en una Mac , asegúrese de habilitar el procesamiento de anotaciones (marque la casilla de verificación) desde ambos lugares disponibles.
1.) Intellij Idea -> Preferencias -> Compilador -> Procesadores de anotaciones
2.) Archivo -> Otras configuraciones -> Configuración predeterminada -> Compilador -> Procesadores de anotación
fuente
Representación de la imagen para resolver este problema.
Primero habilite los procesadores de anotaciones e intente. Esto puede o no funcionar.
Publique eso, puede instalar el complemento lombok desde intellij (después de la instalación, Intellij se reiniciará para habilitar el complemento, así que asegúrese de guardar su trabajo. (Intellij guarda todos los cambios antes de reiniciar, solo para estar seguro). ) captura de pantalla a continuación:
fuente
ejemplo para Gradle:
fuente
Solo como referencia usando IntelliJ 2018.3 , resolví este problema (usando
@Data
anotaciones para insertargetter/setter
) siguiendo los tres pasos:Los mejores deseos :)
fuente
Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [module-core,module-utils] are excluded from annotation processing
Si ha marcado estos dos pasos de la siguiente manera
y sigue recibiendo errores , compruebe el compilador , si es JAVAC o ECLIPSE .
Puede verificar el compilador en Preferencias -> Compilación, Ejecución, Implementación -> Compilador -> Compilador Java.
Cambie el compilador de uso a Javac (si es Eclipse). Esto es lo que funcionó para mí.
fuente
en la última versión de Gradle, debe usar annotationProcessor:
fuente
Como se indica aquí , cite: "Debe activar la opción del compilador externo y habilitar los procesadores de anotación o deshabilitar el compilador externo y deshabilitar todos los compiladores de anotación para que funcionen con lombok". Esto solucionó mi problema. Tenga en cuenta que agregué el complemento Scala antes de recibir este error, por lo que sospecho que el complemento cambió algunas de las configuraciones anteriores.
fuente
Hay un complemento para intellij. ver aquí: https://projectlombok.org/download.html
fuente
¿Tienes lombok como dependencia de tu proyecto? lombok.jar debe estar en el classpath durante la compilación del proyecto, que utiliza cualquiera de las anotaciones de lombok.
fuente
yo estaba en
Mac
Esta es mi versión IntelliJ IDEA y Mac - IntelliJ IDEA 2017.1.5 Build # IU-171.4694.70 --- Mac OS X 10.12
Además de habilitar el procesamiento de anotaciones (marque la casilla de verificación) en estos 2 lugares.
.
Tuve que instalar el complemento Lombok también para que funcione.
fuente
Para aquellos de ustedes que todavía tienen problemas:
Además de los pasos anteriores de habilitar procesadores de anotaciones e instalar el complemento IntelliJ Lombok, también tuve que compilar -> Reconstruir proyecto.
fuente
1 、 instale el complemento lombok para IDEA
Idea Intellij -> Preferencias -> Complementos -> escriba lombok -> Buscar en repositorios -> instalar -> reiniciar IDEA
2 、 plugin config lombok
Habilitar el procesamiento de anotaciones lo hará funcionar
Pero si está en una Mac, asegúrese de habilitar el procesamiento de anotaciones en los siguientes dos lugares:
Idea Intellij -> Preferencias -> Compilación, Ejecución, Implementación -> Compilador -> Procesadores de anotaciones, marque la casilla de verificación "Habilitar el procesamiento de anotaciones". Archivo -> Otras configuraciones -> Configuración predeterminada -> Compilación, ejecución, implementación -> Compilador -> Procesadores de anotación, marque la casilla de verificación "Habilitar procesamiento de anotación".
fuente
No me funcionó con ninguna de las soluciones anteriores. Agregué
<scope>provided</scope>
a la dependencia en pom.xml y funcionó.fuente
Me he enfrentado a este problema después de actualizar IDEA a 2018.3. Tuve que actualizar todo el complemento existente
fuente
Después de probar todas las sugerencias aquí, también he encontrado otro tipo de solución. Parece que a veces IDEA no puede obtener procesadores del classpath del proyecto.
Entonces, en la pestaña de configuración Procesadores de anotación , debe especificar manualmente la ruta del procesador .
fuente
Tuve un problema similar al construir con JDK8, volví a configurar el proyecto en JDK7 y funcionó bien. Podría ser una versión anterior de Lombok que no se compilará bajo JDK8.
fuente
Tuve el mismo problema, así que lo dejaré aquí para referencia futura de mi olvido.
Cuando
Alt+Enter
ing en@Slf4j
anotación por error me elegí importación válido. Entonces, si el código no se compila, asegúrese de importar:import lombok.extern.slf4j.Slf4j;
fuente
FWIW: al configurar las anotaciones del compilador como se describe anteriormente, asegúrese de verificar también los perfiles que esté utilizando, como "procesadores de anotaciones predeterminados de Maven".
fuente
Puede suceder que incluso si lo tiene configurado correctamente y es visible entre las bibliotecas y en la lista de dependencias de Gradle, IntelliJ todavía no lo tiene en la ruta de clase. O está allí, pero configurado con un alcance diferente (por ejemplo, prueba en lugar de compilar).
Primero, asegúrese de tener el complemento instalado y el procesamiento de anotaciones habilitado, como se indica en otras respuestas.
Si todavía tiene una anotación no reconocida, coloque el cursor sobre ella, presione ALT + ENTRAR (u OPCIÓN + ENTRAR) y vea si tiene una opción de menú
Add library: Gragle: org.projectlombok:lombok:VERSION to class path
. Si puede verlo, elija este y puede resolver su problema.Puede verificar la biblioteca y su alcance en: Configuración del proyecto / Módulos / pestaña Dependencias (busque lombok allí)
fuente
Si probó todas las soluciones presentadas aquí y aún no puede compilar las fuentes, también mire aquí: la importación estática de la clase de generador rompe la generación de bytecode en Maven : observe sus fuentes si tiene tales importaciones estáticas. Esto afecta al complemento Maven, por lo que la compilación fallará en otros sistemas de compilación fuera de IntelliJ IDEA.
fuente
En mi caso, tenía todas las cosas mencionadas a continuación en su lugar y todavía no funcionaba.
Para solucionar mis problemas tuve que
Vea capturas de pantalla sobre cómo actualizar y reconstruir el proyecto a continuación.
Cómo actualizar lombok
Cómo reconstruir proyecto
fuente
Puede solucionarlo
cannot find symbol variable log
al usar lombok en IntelliJ IDEA 2017.1.3 haciendo esto:fuente
Instale el siguiente complemento y reinicie el IDE para resolver los errores:
Habilitar procesador de anotaciones:
fuente
Me enfrenté a un problema similar. Lo siguiente funcionó para mí.
descargue (desde aquí https://projectlombok.org/download ) y agregue el jar en la estructura de su proyecto.
Pasos: Archivo -> Estructura del proyecto -> Bibliotecas globales
fuente
Si las bibliotecas lombok están configuradas correctamente, como se mencionó anteriormente, haga clic en la anotación que no se compilaría, Alt-Enter, aparecerá una importación correcta y se compilará el código. - Me llevo un rato resolverlo. Lo puse aquí por si acaso la gente puede pasar por alto lo simple obvio.
fuente
Para los usuarios de Eclipse en MacOS, haga esto. Funcionó para mi.
Eclipse.app/Contents/MacOS
directorio.-javaagent:lombok.jar
al final del archivo Eclipse.app/Contents/Eclipse/eclipse.ini.Haciendo referencia a esto
fuente
Además de lo mencionado en todas las respuestas, debo agregar el siguiente código en la configuración de pom.xml para que la instalación de mvn clean funcione. Antes de agregar este código que estaba obteniendo, no puedo encontrar el símbolo para captadores y establecedores.
fuente
Para mí lo que funcionó:
fuente
Para IntelliJ IDEA 2020.1.1, habilitar el complemento Kotlin solucionó este problema.
fuente