当前位置: 首页 > 知识库问答 >
问题:

如何将MapSTRt与Eclipse正确集成?(包括Lombok java代理)

李华茂
2023-03-14

我愿意在一些官方项目中使用MapStruct,所以我决定先对它进行一些测试;我需要让它与eclipse集成,并遵循MapStruct网站上提供的所有说明,但是。。。到目前为止没有运气。有人在这种整合上取得了成功吗?如果是,我还能错过什么?

我的测试从更大的东西开始,但是当我意识到它不起作用时,我决定使用一个更小的例子,所以我这样做了:

  • 使用openjdk-10.0.1_windows-x64

... 无法说服eclipse自动生成映射器实现,我甚至在pom中添加了jdt_apt行。

这是pom.xml的一个片段-请参考他的mapstruct-clone项目的整个代码。

<properties>
    <org.mapstruct.version>1.3.0.Final</org.mapstruct.version>
    <m2e.apt.activation>jdt_apt</m2e.apt.activation>
</properties>

预期结果将是:

  • 当我保存映射接口时,在“目标/生成源/注释”下找到我重新生成的类
  • (如http://mapstruct.org/documentation/dev/reference/html/所述,它将设置MapSTRt注释处理器,以便在您保存映射器类型时在IDE中运行。很整洁,不是吗?”)
  • 但不要
  • 我只能通过“mvn干净安装”生成类,这很好,但不是那么方便

重要编辑:我也在使用lombok javaagent

共有2个答案

江育
2023-03-14

我实际上面临着一个非常相似的问题,并以一种稍微不同的方式解决了它。

>

  • 如OP所述,确保在pom.xml中声明此属性:

    <代码>

    显然,必须安装适用于eclipse的m2e apt插件:https://marketplace.eclipse.org/content/m2e-apt

    在pom中。xml确保mapstruct processor和lombok在提供的范围内。

    最后但并非最不重要的一点:我不得不调整龙目山。通过添加org。mapstruct。美联社。spi。AstModifyingAnnotationProcessor。将类文件放入jar(请参阅https://github.com/mapstruct/mapstruct/issues/1159#issuecomment-328974483).

    使用Eclipse 2019-03、Lombok 1.18.6和Mapstruct 1.2.0进行测试。最终的

    希望这有帮助!

  • 阙星渊
    2023-03-14

    我最终找到了解决问题的方法(=D)

    • 首先感谢MapStruct团队的Sjaak Derksen对我的支持
    • 第二,感谢Pavel Horal发布此解决方案https://github.com/mapstruct/mapstruct/issues/1159
    • 最后感谢我自己的固执(有时候这会有帮助)

    这个问题确实与Lombok java代理和MapStruct之间的不兼容有关。要让它发挥作用,只要按照帕维尔在上一篇帖子中的建议去做,它就会起作用:

    [...]简单地删除lombok.jar内的SPI注册(通过删除META-INF/service/org.mapstruct.ap.spi.AstModifyingAnnotationProcess)[...]

     类似资料:
    • 我在将Vaadin与Spring应用程序集成时遇到一些问题。我的所有bean都在“rootcontext.xml”文件中。我可以通过实例化“rootcontext.xml”然后为我的一个服务类调用bean来调用bean。 我可以这样填充表,但这是调用服务类的正确方法吗?因为我有更多的表必须称之为这个。 这是我的UI类: 我的根上下文。xml文件位于目录/WEB-INF/spring/root上下文

    • 是否有任何特殊的配置可以让eclipse生成Mapstruct映射器?目前,它们尚未生成。 它们确实在gradle构建中生成,但是我不能让它们生成,所以我可以在开发中使用它们。 我把这个添加到我的build.gradle: 我还为MapStruct添加了eclipse插件(尽管我相信这实际上不是必需的??) 然后我去了那个项目 但是。apt_generated是空的,我错过了什么? 我正在使用:

    • 现有的Eclipse项目使用Maven,但不知道JUnit。我应该/可以将JUnit集成到现有项目中,还是应该创建一个专门用于JUnit的新项目,或者有更好的选择吗?

    • 问题内容: 有人知道将soapUI测试添加到我的CI版本的好方法吗? 问题答案: soapUI通过Maven或Ant提供测试自动化。在这里描述了Maven集成。 我在一个月前尝试过,但是在eviware存储库中遇到了一些奇怪的问题…因此,我现在通过Ant运行测试。您要做的是在soapUI bin目录中调用(或)脚本。您可以在此处找到可用的参数。 您必须在Hudson构建服务器上安装soapUI。然

    • 问题内容: 我正在寻找有关symfony2中有关ajax的简单教程/示例,供初学者使用? 我有这些例子: city.php:http://pastebin.com/Qm8LS5kh ajax_req.js:http://pastebin.com/UqJMad24 index.html:http://pastebin.com/H1err4Yh 如何将它们放入Symfony2应用程序中? 问题答案:

    • 当我在插件和“测试连接”中配置SonarQube服务器时,我正在尝试使用Intellij运行Solar Lint 我一直收到以下错误消息: 以下插件不符合要求的最低版本,请升级:java(安装:3.7,最低:3.8) 我不完全明白这意味着什么,我真的很感激在这方面的任何帮助。 P、 我无法升级sonar服务器上的Java插件,如果这是这个问题的唯一解决方案,因为我无法访问服务器管理功能。