MapStruct + Lombok вместе не компилируются: неизвестное свойство в типе результатаJAVA

Программисты JAVA общаются здесь
Anonymous
MapStruct + Lombok вместе не компилируются: неизвестное свойство в типе результата

Сообщение Anonymous »

Используемый технологический стек:

Java 8
MapStruct: 1.2.0.Final
Lombok: 1.16.18
IDE : Плагин IntelliJ - Lombok уже установлен
  • Изначально я столкнулся с проблемами, когда удалил геттеры и сеттеры и добавил @Getter и @ Аннотация Setter, Mapstruct не может найти свойство и говорит: Неизвестное свойство «id» в типе результата com.vg.once.dto.OneDto. Вы имели в виду «нулевой»?
  • Я узнал, что Lombok 1.16.14 или новее вместе с MapStruct 1.2.0.Beta1 или новее совместимы и могут работать вместе, но мои версии новее желаемых, но проблема все равно возникает.
  • Еще одно решение, которое я уже пробовал, - это запустить плагин Delombok от Lombok, но, тем не менее, возникает та же проблема.
Ниже приведены файлы проекта:

Объект Entity: One.java:

Код: Выделить всё

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class One {

private int id;
private Integer version;
private int projectId;
private String title;
private String code;
private int sortOrder;

}
Объект DTO: OneDTO.java:

Код: Выделить всё

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class OneDto {

private int id;
private Integer version;
private int projectId;
private String title;
private String code;
private int sortOrder;

}
Класс Mapper: OneMapper.java

Код: Выделить всё

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

import com.vg.once.dto.OneDto;
import com.vg.once.entity.One;

@Mapper
public interface OneMapper {

@Mapping(target="id", source="one.id")
OneDto createOne (One one);

}
pom.xml

Код: Выделить всё


4.0.0
com.vg
mapstruct
0.0.1-SNAPSHOT
Mapstruct-test


1.8
1.2.0.Final
1.16.18




org.projectlombok
lombok
${org.projectlombok.version}
provided


org.mapstruct
mapstruct-jdk8
${org.mapstruct.version}






org.projectlombok
lombok-maven-plugin
1.16.18.1


generate-sources

delombok




src/main/java
false
${project.build.directory}/delombok
UTF-8
false
false



org.apache.maven.plugins
maven-compiler-plugin
3.6.1

${java.version}
${java.version}


org.mapstruct
mapstruct-processor
${org.mapstruct.version}







Трассировка сборки:

Код: Выделить всё

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Mapstruct-test 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- lombok-maven-plugin:1.16.18.1:delombok (default) @ mapstruct ---
[INFO] Delombok complete.
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mapstruct ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ mapstruct ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 5 source files to /home/vivekgupta/Documents/workspaces/mapstruct-test/mapstruct/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/vivekgupta/Documents/workspaces/mapstruct-test/mapstruct/src/main/java/com/vg/once/mapper/OneMapper.java:[12,9] Unknown property "id" in result type com.vg.once.dto.OneDto. Did you mean "null"?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.637 s
[INFO] Finished at: 2017-12-06T19:23:53+05:30
[INFO] Final Memory: 19M/235M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project mapstruct: Compilation failure
[ERROR] /home/vivekgupta/Documents/workspaces/mapstruct-test/mapstruct/src/main/java/com/vg/once/mapper/OneMapper.java:[12,9] Unknown property "id" in result type com.vg.once.dto.OneDto. Did you mean "null"?
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
поделитесь, пожалуйста, как мне заставить это работать, используя Lombok и MapStruct вместе?

Подробнее здесь: https://stackoverflow.com/questions/476 ... esult-type

Вернуться в «JAVA»