java - tutorial - lombok getter setter not working eclipse
No puedo compilar proyecto cuando estoy usando Lombok bajo IntelliJ IDEA (19)
Lombok utilizar Lombok en mi proyecto que desarrollo usando IntelliJ IDEA 11.
Instalé el 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é como esto
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestClass
{
public TestClass()
{
log.info("Hello!");
}
}
Pero cuando construyo mi compilador de proyecto escupe: cannot find symbol variable log
.
¿Podría decirme qué me falta aquí?
Actualización: Resultó que es un proceso de anotación RequestFactory que 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 temporales?
Actualización2: Tal vez no es algo que los lectores quieran escuchar, pero terminé cambiando a Scala .
¿Tienes lombok como dependencia de tu proyecto? lombok.jar debe estar en el classpath durante la compilación del proyecto, que está utilizando cualquiera de las anotaciones de lombok.
Como se indica here , cite: "Debería 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.
En mi caso, tenía todas las cosas mencionadas a continuación en su lugar y todavía no estaba funcionando.
- Tuve el complemento lombok instalado correctamente
- Procesadores de anotación, también verificados.
- Mi compilador de Java se estableció en JAVAC
Para solucionar mis problemas tuve que
- Actualice lombok a la última versión (v0.15) al 7 de octubre de 2017.
- Reinicie IntelliJ.
- Reconstruir proyecto
Vea capturas de pantalla sobre cómo actualizar y reconstruir el proyecto a continuación.
Estaba en Mac
Esta es mi IntelliJ IDEA y la versión Mac - IntelliJ IDEA 2017.1.5 Build # IU-171.4694.70 --- Mac OS X 10.12
Además de habilitar el procesamiento de anotación (marque la casilla de verificación) en estos 2 lugares.
1.) Intellij IDEA -> Preferencias -> Compilador -> Procesadores de anotaciones
.
2.) Archivo -> Otras configuraciones -> Configuración predeterminada -> Compilador -> Procesadores de anotación
Tuve que instalar el complemento de Lombok para que funcione.
3.) Intellij IDEA -> Preferencias -> Complementos -> Examinar repositorios-> Buscar "Lombok" -> instalar plugin -> Aplicar y reiniciar IDEA
FWIW: al configurar las anotaciones del compilador como se describe arriba, asegúrese de que también comprueba si hay algún perfil que esté usando, como "procesadores de anotaciones predeterminadas de Maven".
Habilitar el proceso de anotación lo hará funcionar
Pero si está en una Mac , asegúrese de habilitar el proceso de anotación (marque la casilla de verificación) en ambos lugares disponibles.
1.) Idea de Intellij -> Preferencias -> Compilador -> Procesadores de anotación
2.) Archivo -> Otras configuraciones -> Configuración predeterminada -> Compilador -> Procesadores de anotación
Lo he arreglado en IDEA 12 configurando la casilla de verificación Enable annotation processing
en:
Configuración -> Compilador -> Procesadores de anotación
Para IDEA 2016.2:
Preferencias ...> Build, Execution, Deployment> Compiler> Annotation Processors
No funcionó para mí con ninguna de las soluciones anteriores. Agregué <scope>provided</scope>
a la dependencia en pom.xml y funcionó.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
Para aquellos de ustedes que todavía tienen problemas:
Además de los pasos anteriores de habilitar procesadores de anotación e instalar el complemento IntelliJ Lombok, también tuve que compilar -> Reconstruir proyecto.
Para que esto funcione, simplemente instala el "Plugin de Lombok" para IntelliJ. No necesita hacer nada para habilitar "Procesadores de anotación", como han sugerido algunos otros comentaristas. (He probado esto con la última versión de IntelliJ IDEA, actualmente 2017.1.2). Para instalar el complemento, vaya a Configuración, luego a Complementos, luego haga clic en el botón "Buscar repositorios", luego busque "Lombok" e instale el Complemento de Lombok. Se le pedirá que reinicie IntelliJ. Después, debería poder compilar desde IntelliJ y no recibirá más inspecciones de errores.
Puede corregirlo cannot find symbol variable log
cuando usa lombok en IntelliJ IDEA 2017.1.3 al hacer esto:
Preferencias de IntelliJ> Compilación, ejecución, implementación> Procesadores de anotaciones> [Comprobar] Habilitar el proceso de anotación> Aplicar
Puede suceder que incluso si lo tiene configurado correctamente y es visible entre las bibliotecas y en la lista de dependencias de Gradle, IntelliJ aún no lo tiene en la ruta de la clase. O está allí, pero configurado con un alcance diferente (por ejemplo: prueba en lugar de compilar).
Primero, asegúrese de tener el plugin instalado y el procesamiento de anotación 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 consultar la biblioteca y su alcance en: Configuración del proyecto / pestaña Módulos / Dependencias (busque lombok allí)
Representación de la imagen para resolver este problema.
Primero habilita los procesadores de anotación y prueba. Esto puede o no funcionar.
Publica eso, puedes instalar el plugin lombok desde intellij, (Después de la instalación, Intellij se reiniciará para habilitar el plugin, así que asegúrate de guardar tu trabajo. (Intellij guarda todos los cambios antes de reiniciar, solo para estar seguros). ) captura de pantalla a continuación:
Si ha verificado estos dos pasos de la siguiente manera
- Habilitar anotaciones: se trata de una comprobación realizada en las preferencias de IntelliJ.
- Importación de lombok a IntelliJ classPath (Preferencias -> Complementos)
y sigue recibiendo errores , compruebe el compilador , si es JAVAC o ECLIPSE .
Puede verificar el compilador en Preferencias -> Compilación, Ejecución, Despliegue -> Compilador -> Compilador Java.
Cambie el compilador Usar a Javac (si es Eclipse). Esto es lo que funcionó para mí.
Si probaste todas las soluciones presentadas aquí y aún no puedes compilar las fuentes, también mira aquí: La importación estática de la clase constructora rompe la generación de bytecode en Maven : mira tus fuentes si tiene tales importaciones estáticas. Esto afecta al plugin maven, por lo que la compilación fallará en otros sistemas de compilación fuera de IntelliJ IDEA.
Tuve el mismo problema, así que lo dejaré aquí para referencia futura de mi inconsciencia.
Cuando Alt+Enter
en la anotación @Slf4j
, elegí erróneamente la importación no válida. Entonces, si el código no se compila, asegúrese de importar:
import lombok.extern.slf4j.Slf4j;
Tuve un problema similar cuando construí con JDK8, configuré el proyecto de nuevo en JDK7 y funcionó bien. Podría ser una versión anterior de Lombok que no se compilará bajo JDK8.
hay un complemento para intellij. mira aquí: https://projectlombok.org/download.html
1, instale el complemento lombok para IDEA
Intellij Idea -> Preferencias -> Complementos -> escriba en lombok -> Buscar en repositorios -> instalar -> reiniciar IDEA
2, config lombok plugin
Habilitar el proceso de anotación lo hará funcionar
Pero si está en una Mac, asegúrese de habilitar el procesamiento de anotaciones en los siguientes dos lugares:
Intellij Idea -> Preferences -> Build, Execution, Deployment -> Compiler -> Annotation Processors, marque la casilla de verificación "Habilitar el proceso de anotación". Archivo -> Otras configuraciones -> Configuración predeterminada -> Compilación, Ejecución, Despliegue -> Compilador -> Procesadores de anotación, marque la casilla de verificación "Habilitar el proceso de anotación".