[java] IntelliJ IDEA에서 Lombok을 사용하는 경우 프로젝트를 컴파일 할 수 없습니다

IntelliJ IDEA 11을 사용하여 개발중인 프로젝트에서 Lombok 을 사용하려고합니다 .

IDEA 용 타사 플러그인을 설치 했으며 IDEA가 모든 자동 생성 된 메소드 / 필드를 볼 수 있으므로 제대로 작동하는 것 같습니다.

그래서 Slf4j를 사용하는 클래스가 있습니다. 이렇게 주석을 달았습니다

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}

그러나 나는 내 프로젝트 컴파일러 가래침을 빌드 할 때 : cannot find symbol variable log.

내가 여기서 무엇을 놓치고 있는지 말해 주시겠습니까?

업데이트 : 실패한 RequestFactory 주석 프로세스로 밝혀졌습니다.

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

해결 방법에 대한 아이디어가 있습니까?

Update2 : 아마도 독자들이 듣고 싶어하는 것이 아니지만 Scala로 전환했습니다 .



답변

IDEA 12 Enable annotation processing에서 확인란을 설정하여 수정했습니다 .

설정-> 컴파일러-> 주석 프로세서

IDEA 2016.2의 경우 :

환경 설정 …> 빌드, 실행, 배치> 컴파일러> 주석 프로세서

활성화 한 후 빌드-> 프로젝트 다시 빌드를 실행 하여 주석을 인식하고 오류를 제거하십시오.


IDEA 2019.2.1의 경우 프로젝트 구성 방법에 따라 Project Lombok 플러그인 설치로는 충분하지 않을 수 있습니다. IntelliJ IDEA와 함께 Project Lombok을 사용하는 다른 방법은 다음과 같습니다.

  1. https://projectlombok.org/download 방문
  2. JAR 파일을 프로젝트 lib 디렉토리 (예 :)로 다운로드하십시오 $HOME/dev/java/project/libs.
  3. IDE를 시작하십시오.
  4. 파일 ? 설정을 클릭하십시오 .
  5. 빌드, 실행, 배치 ? 컴파일러 ? 주석 프로세서를 확장 하십시오 .
  6. 주석 처리 사용 이 선택되어 있는지 확인 하십시오 .
  7. 프로젝트의 모듈 설정에 따라 상점에서 상대 소스 생성 이 선택 되어 있는지 확인하십시오 ( 모듈 출력 디렉토리 가 작동하지 않으면 돌아와서 다른 설정을 시도하십시오).
  8. 적용을 클릭 하십시오 .
  9. 플러그인을 클릭하십시오 .
  10. 마켓 플레이스를 클릭하십시오 .
  11. 검색 필드를 다음으로 설정하십시오. lombok
  12. 롬복을 설치하십시오 .
  13. 확인을 클릭하십시오 .
  14. 메시지가 표시되면 IDE를 다시 시작하십시오.
  15. 파일 → 프로젝트 설정을 클릭하십시오 .
  16. 라이브러리를 선택하십시오 .
  17. + 기호를 클릭하여 새 프로젝트 라이브러리를 추가하거나 Alt+를 누릅니다 Insert.
  18. Java를 선택하십시오 .
  19. 경로를 다음으로 설정하십시오. $HOME/dev/java/project/libs/lombok.jar
  20. 확인을 클릭하십시오 .
  21. 적용 할 모듈을 선택하십시오.
  22. 확인을 클릭하십시오 .
  23. 선택적으로로 이름 lombok을 바꿉니다 Project Lombok 1.18.8.
  24. 확인을 클릭하십시오 .

프로젝트는 이제 lombok패키지 에서 가져 와서 프로젝트 롬복 주석 (예 : lombok.Setterlombok.Getter)을 사용할 수 있습니다.


답변

주석 처리를 활성화하면 작동합니다

그러나 Mac 을 사용 하는 경우 사용 가능한 두 위치 에서 주석 처리를 활성화하십시오 (확인란에 체크 표시) .

1.) Intellij 아이디어-> 환경 설정-> 컴파일러-> 주석 프로세서

2.) 파일-> 기타 설정-> 기본 설정-> 컴파일러-> 주석 프로세서


답변

이 문제 해결의 그림 표현.

먼저 주석 프로세서를 활성화하고 시도하십시오. 이것은 작동하거나 작동하지 않을 수 있습니다.
여기에 이미지 설명을 입력하십시오

그것을 게시하면 intellij에서 lombok 플러그인을 설치할 수 있습니다 (설치 후 Intellij가 플러그인을 활성화하기 위해 다시 시작하므로 작업을 저장하십시오.) (Intellij는 다시 시작하기 전에 모든 변경 사항을 저장합니다. ) 아래 스크린 샷 :

여기에 이미지 설명을 입력하십시오


답변

  1. 프로젝트에 올바르게 추가되었는지 확인하십시오.

Gradle의 예 :

 dependencies {
     compileOnly 'org.projectlombok:lombok:1.18.8'
     annotationProcessor 'org.projectlombok:lombok:1.18.8'
     ...
 }
  1. IDE 용 Lombok 플러그인 설치
  2. IDE (IntellijIdea)에서 “주석 처리 사용”체크 상자를 선택하고 Eclipse와 같은 다른 IDE에 대해 이와 비슷한 것이 있는지 전혀 모른다.

답변

IntelliJ 2018.3을 사용하여 참조 하기 위해 세 가지 단계에 따라 @Data주석을 사용 하여이 문제를 해결했습니다 getter/setter.

  1. 파일-> 설정-> 빌드, 실행, 배포-> 주석 프로세서-> 주석 처리 사용;

여기에 이미지 설명을 입력하십시오

변경 사항 을 적용 해야합니다.

  1. 동일한 설정 대화 상자에 플러그인 lombok 을 설치하십시오 .

여기에 이미지 설명을 입력하십시오

  1. 지금은 충분 해 보입니다. IntelliJ를 다시 시작한 다음 프로젝트를 다시 빌드해야합니다.

최고의 소원 🙂


답변

다음과 같이이 두 단계를 모두 확인한 경우

  1. 주석 사용 : 이것은 IntelliJ 환경 설정에서 수행됩니다.
  2. 롬복을 IntelliJ classPath로 가져 오기 (환경 설정-> 플러그인)

그래도 오류가 발생 하면 컴파일러JAVAC 또는 ECLIPSE 인지 확인하십시오 .

환경 설정-> 빌드, 실행, 배치-> 컴파일러-> Java 컴파일러에서 컴파일러를 확인할 수 있습니다.

컴파일러 사용을 Javac (Eclipse 인 경우)로 변경하십시오. 이것이 나를 위해 일한 것입니다.


답변

최신 Gradle 버전에서는 annotationProcessor를 사용해야합니다.

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok:1.18.8'