Eu tenho um projeto maven que é compilado sem problemas na linha de comando. No entanto, quando o construo com o IntelliJ, recebo o erro:
java: FileName.java:89: cannot find symbol
symbol : variable log
Não há log definido ou importado no arquivo java, mas há um
@Slf4j
final public class FileName {
declaração antes do corpo da classe que deve definir a classe de log.
Na janela de estrutura do projeto, classes 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
estão listados em bibliotecas e são indicados como tendo sido baixados e disponíveis.
Alguma ideia de por que isso seria construído com o maven por meio da linha de comando, mas não por meio do IntelliJ e como resolver o problema?
intellij-idea
slf4j
lombok
user1991839
fonte
fonte
Respostas:
Além de ter o plug-in do Lombok instalado , certifique-se também de que a
Enable annotation processing
caixa de seleção " " esteja marcada em:Observação: a partir do IntelliJ 2017, a
Enable Annotation Processing
caixa de seleção " " mudou para:fonte
Presumivelmente, é a anotação Lombok @ Slf4j que você está usando. Você precisará instalar o plug-in do Lombok no IntelliJ se quiser que o IntelliJ reconheça as anotações do Lombok. Caso contrário, o que você espera ao tentar usar um campo que não existe?
fonte
Na versão do Intellij 2016, 2017, ative Preferências -> Compilador -> Processadores de anotação não funciona para mim!
A seguinte caixa de seleção adicional ajuda:
fonte
2019:
Obtenha um plugin e você está classificado ...
Arquivo> Configurações> Plug-ins
fonte
Posso estar desencorajando um tópico morto, mas uma solução simples é verificar em suas dependências (pom do Maven por exemplo) se você está incluindo o logback-core e o logback-classic .
Slf4j é apenas a interface, você precisa da implementação concreta por trás dele para funcionar.
Já fui enganado duas vezes com IDÉIA, bagunçando tudo, agora estou pronto para ir: D
fonte
Funcionou para mim !!! Estava falhando no CircleCI e no Jenkins também.
Se você for um usuário Gradle, tente adicionar o seguinte às suas dependências:
fonte
Na IDEA 13, isso parece não ser mais um problema, você só precisa ter o plug-in do Lombok instalado.
fonte
Acabei de instalar a versão 2108.1 do Ideia mais recente e encontrei este problema, após instalar o plugin lombok e reiniciar o Ideia resolvê-lo.
fonte
Se você estiver usando o maven, tente adicionar o caminho do Lombok à
maven-compiler-plugin
lista de processadores de anotação, conforme mostrado abaixo.Altere a versão de acordo com sua versão do Lombok. Além disso, certifique-se de ter feito o seguinte
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
. Para mim tanto,Obtain processors from project classpath
eProcessor path
está funcionando. Portanto, não tenho certeza do que funcionará para você, mas tente o que funcionar.E ao invés de filmar no escuro por horas. Ler um pouco como os processadores de anotação funcionam e são usados pelo compilador pode ajudar. então leia rapidamente abaixo.
http://hannesdorfmann.com/annotation-processing/annotationprocessing101
fonte
Isso funcionou para mim:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
Marque 'ativar o processamento de anotação'.
Apply
Perto
fonte
Tentei quase todas as respostas mencionadas, mas nada funcionou para mim. Minha compilação do Gradle estava falhando o tempo todo. Acabei de encontrar esta solução:
Adicione
annotationProcessor 'org.projectlombok:lombok'
em seu build.gradle.Isso funcionou para mim.
fonte
Remover a anotação @ Slf4J da classe e depois adicioná-la novamente funcionou para mim.
fonte
1 Minhas dependências do Gradle Lombok:
2 Depois de ativar "Anotações ..." em IDEA (Configurações), levando em consideração que você instalou o plug-in do Lombok, que resolveu o mesmo problema
fonte
Eu estava vendo esse problema com uma versão mais antiga do Lombok ao compilar no JDK8. Definir o projeto de volta para JDK7 eliminou o problema.
fonte
Isso não terá sido problema da OP, mas para qualquer outra pessoa que tenta de tudo sem sucesso:
Eu tive sintomas semelhantes. Sempre que construí após um
mvn clean
, ele não encontravalog
, ougetXYZ()
, oubuilder()
, ou qualquer coisa.Depois de ler todas as respostas que pude encontrar sobre problemas de QueryDSL / JPA / Hibernate / Lombok / IntelliJ / Maven sem sucesso, descobri que o culpado era uma única importação estática de um
@Getter
método que foi anotado em um campo estático .Spring 1.15.14.RELEASE, Intellij 2019.1.1
fonte
Não é um problema do IntelliJ. Se você tentar no console, execute mvn install , também interrompe. Todas as anotações de lombok.extern precisam adicionar dependências. Este pacote agrupa as próximas anotações:
Por exemplo, para Slf4j é necessário adicionar esta dependência ao seu pom.xml
fonte
Depois de habilitar os processadores de anotação e instalar o plugin lombok, ainda não funcionou. Nós contornamos isso marcando a opção de ideia "Delegar build IDE para gradle"
fonte
O que resolveu as coisas para mim foi marcar a caixa de seleção "Usar registro de plug-in" nas configurações do Maven.
O caminho é: Arquivo -> Preferências -> Compilação, execução, implantação -> Ferramentas de compilação -> Maven
fonte
Exclua a pasta .idea e os arquivos .iml em cada módulo e reconstrua a solução.
fonte
Eu tinha o plugin do Lombok, anotações habilitadas, ele estava compilando na linha de comando - tudo e ainda não via meu projeto como maven (todas as dependências do maven estavam vermelhas nos arquivos de origem). Em seguida, cliquei em SHIFT duas vezes e pesquisei 'maven' e entre os resultados estava 'Recarregar todos os projetos Maven'. Depois de executá-lo, a guia Maven apareceu e eu fui capaz de compilar, e todos os sublinhados em vermelho no código-fonte desapareceram.
fonte
Uma coisa simples, mas descobri que é: senti falta de adicionar
@Log
à classe.Isso pode ajudar alguém.
fonte
Eu tenho o mesmo problema; Eu uso o Gradle e o IDEA;
Acontece que é causado pela versão errada do gradle.
Em gradle \ wrapper \ gradle-wrapper.properties, é:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
No entanto, eu especifiquei a versão em IDEA para ser
D:\Library\gradle-5.2.1
Depois de baixar a versão do gradle para 4.10.x, o problema foi embora.
fonte
Tente criar o
lombok.config
arquivo no diretório base do projeto e forneça olombok.log.fieldName
valor.Exemplo:
lombok.log.fieldName = LOG
fonte