>Java >java지도 시간 >MapStruct와 Lombok을 함께 사용할 때 내 프로젝트가 컴파일되지 않는 이유는 무엇입니까?

MapStruct와 Lombok을 함께 사용할 때 내 프로젝트가 컴파일되지 않는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-01 09:09:18732검색

Why Does My Project Fail to Compile When Using MapStruct and Lombok Together?

프로젝트와 MapStruct 및 Lombok 통합이 컴파일되지 않음

문제:

MapStruct 및 프로젝트에서 Lombok을 함께 사용하면 알 수 없는 속성 "id"로 인해 오류가 발생합니다. @Getter 및 @Setter 주석을 사용하여 getter 및 setter를 제거할 때의 결과 유형.

해결 방법:

이 문제는 MapStruct 프로세서만 사용하는 Maven에서 발생하지만 롬복 프로세서. 이 문제를 해결하기 위해 다음 두 가지 옵션을 사용할 수 있습니다.

옵션 1: 주석 프로세서 경로에 Lombok 종속성 추가

pom.xml의 maven-compiler-plugin 구성을 다음으로 수정합니다. Lombok 종속성을 AnnotationProcessorPaths:

<!-- Maven Compiler Configuration -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.1</version>
    <configuration>
        <!-- ... Existing Configuration Snippet -->

        <annotationProcessorPaths>
            <!-- Lombok Dependency -->
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${org.projectlombok.version}</version>
            </path>

            <!-- MapStruct Dependency -->
            <path>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>${org.mapstruct.version}</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>

옵션 2: MapStruct-Processor 종속성 추가

또는 pom.xml의 종속성에 mapstruct-processor 종속성을 추가하고 AnnotationProcessorPaths:

<!-- Maven Dependencies -->
<dependencies>
    <!-- ... Existing Dependencies Snippet -->

    <!-- MapStruct Processor Dependency -->
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct-processor</artifactId>
        <version>${org.mapstruct.version}</version>
    </dependency>
</dependencies>

추가 참고 사항:

  • Lombok 1.18.16 이상의 경우 표시된 대로 AnnotationProcessorPaths에 lombok-mapstruct-bind 종속성을 포함합니다. 옵션 1에서.
  • 다음을 확인하세요. MapStruct 프로세서는 IntelliJ에서 주석 처리를 활성화하기 위해 pom.xml 종속성에 "제공됨"으로 표시됩니다.
  • 위 솔루션을 구현한 후에도 이 문제가 지속되면 Java 및 MapStruct 버전이 호환되는지 확인하세요. 호환성 정보는 최신 MapStruct 설명서를 참조하세요.

위 내용은 MapStruct와 Lombok을 함께 사용할 때 내 프로젝트가 컴파일되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.