我愿意在一些官方项目中使用MapStruct,所以我决定先给它一些测试;我需要让它与eclipse集成并遵循MapStruct网站上提供的所有说明但是......到目前为止还没有运气。有没有人成功进行这种整合?如果是的话我能错过什么?
我的测试开始于更大的东西,但是当我意识到它不起作用时我决定使用一个更小的例子,所以这就是我做的:
...无法说服eclipse自动生成mapper实现,我甚至将jdt_apt行添加到pom中。
这是pom.xml的一个片段 - 请参考他的mapstruct-clone项目以获取整个代码。
<properties>
<org.mapstruct.version>1.3.0.Final</org.mapstruct.version>
<m2e.apt.activation>jdt_apt</m2e.apt.activation>
</properties>
预期结果将是:
重要编辑:我也在使用lombok javaagent
我最终找到了问题的解决方案(= D)
这个问题确实与Lombok java代理和MapStruct之间的不兼容性有关。为了让它发挥作用,只需按照Pavel在上一篇文章中的建议进行操作即可:
[...]只需删除lombok.jar中的SPI注册(通过删除META-INF / services / org.mapstruct.ap.spi.AstModifyingAnnotationProcessor)[...]
我实际上遇到了一个非常相似的问题,并以稍微不同的方式解决了它。
<properties>
...
<m2e.apt.activation>jdt_apt</m2e.apt.activation>
...
</properties>
org.mapstruct.ap.spi.AstModifyingAnnotationProcessor.class
)。使用Eclipse 2019-03,Lombok 1.18.6和Mapstruct 1.2.0.Final进行测试。
希望这可以帮助!