명령 줄에서 문제없이 빌드되는 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가 작동하지 않습니다!
답변
답변
죽은 주제를 풀고있을 수 있지만 간단한 해결책은 logback-core 및 logback-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 플러그인을 설치하기 만하면됩니다.