[intellij-idea] Lombok의 @ Slf4j 및 Intellij로 빌드 : 기호 로그를 찾을 수 없습니다.

명령 줄에서 문제없이 빌드되는 maven 프로젝트가 있습니다. 그러나 IntelliJ로 빌드하면 오류가 발생합니다.

java: FileName.java:89: cannot find symbol
symbol  : variable log

Java 파일에 정의되거나 가져온 로그가 없지만

@Slf4j
final public class FileName {

로그 클래스를 정의해야하는 클래스 본문 앞에 문.

프로젝트 구조 창에서 다음에 대한 클래스 :

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

라이브러리 아래에 나열되며 다운로드 및 사용 가능으로 표시됩니다.

이것이 IntelliJ가 아닌 명령 줄을 통해 maven으로 빌드되는 이유와 문제를 해결하는 방법을 아십니까?



답변

Lombok 플러그인을 설치하는 것 외에도 다음 에서 ” Enable annotation processing“확인란이 선택되어 있는지 확인하십시오 .

Preferences > Compiler > Annotation Processors

참고 : IntelliJ 2017부터 ” Enable Annotation Processing“확인란이 다음으로 이동했습니다.

Settings > Build, Execution, Deployment > Compiler > Annotation Processors


답변

아마도 그것은 당신이 사용 하고있는 Lombok @ Slf4j 주석 일 것입니다. IntelliJ가 Lombok 주석을 인식하도록하려면 IntelliJ에 Lombok 플러그인을 설치해야합니다. 그렇지 않으면 존재하지 않는 필드를 사용하려고하면 무엇을 기대합니까?


답변

Intellij 버전 2016, 2017에서 Preferences-> Compiler-> Annotation Processors가 작동하지 않습니다!

다음 추가 확인란이 도움이됩니다. 여기에 이미지 설명 입력


답변

2019 :

플러그인을 받으면 정렬됩니다 …

파일> 설정> 플러그인

여기에 이미지 설명 입력


답변

죽은 주제를 풀고있을 수 있지만 간단한 해결책은 logback-corelogback-classic을 포함하는 경우 종속성 (예 : Maven의 pom)을 확인하는 것 입니다.

Slf4j 는 인터페이스 일 뿐이며 작동하려면 구체적인 구현이 필요합니다.

나는 IDEA가 그것을 엉망 으로 만들고 두 번 속았다 .


답변

나를 위해 일했습니다 !!! CircleCI 및 Jenkins에서도 실패했습니다.

Gradle 사용자 인 경우 종속성에 다음을 추가해보세요.

dependencies {
    //Other Dependencies >>

    //LOMBOK Dependencies
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'
    testCompile 'org.projectlombok:lombok'
    testImplementation 'org.projectlombok:lombok'
}


답변

IDEA 13에서는 더 이상 문제가되지 않는 것 같습니다. Lombok 플러그인을 설치하기 만하면됩니다.