【问题标题】:Eclipse Lombok annotations not compiled... Why?Eclipse Lombok 注释未编译...为什么?
【发布时间】:2017-07-07 04:20:06
【问题描述】:

我的项目有问题。 它是一个 Spring CRUD RestFul API,它公开提供 Json 数据的服务。 我使用 JDK-7、Eclipse-Neon 和 Maven 进行编码、构建并将项目部署到 JBossEAP 6.4 服务器中。 每件事都运行良好,服务响应正确。

所以我决定添加 Lombok,以减少锅炉代码并提高代码的可读性。顺便说一句,我之前在另一个项目中使用过 Lombok 并且工作正常。

这是我的问题,包括 Lombok 之后: - 当我使用 Maven (mvn clean install) 进行调试时,一切顺利,项目部署和工作正常。 - 当项目由 Eclipse 构建时,Lombok 注释(即:@Data 等)不包含在 *.class 中。因此,Eclipse 部署的耳朵工作正常,但所有实体都没有任何 getter/setter 等。

我知道 Eclipse 配置正确,因为我的代码中没有任何与 Lombok 相关的警告,Eclipse 的大纲视图显示了生成的方法。

有人知道这类问题吗?

【问题讨论】:

  • 您是否已将 lombok 依赖项添加到您的 POM 中?
  • 是的,我愿意。我对 Maven 构建没有问题,我对 Eclipse 构建有问题。 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> <scope>provided</scope> </dependency>
  • 尝试更新 Maven 配置。右键单击项目选择“Maven”,然后选择“更新项目配置”
  • 啊,对不起,不知怎么的,我读的完全相反,。
  • 也许这会有所帮助:stackoverflow.com/questions/11803948/… ?

标签: java eclipse spring maven lombok


【解决方案1】:

您还必须在 Eclipse 中安装了 lombok 插件。 (请注意,这与项目依赖项中存在的 lombok 有所不同;您需要两者。)此外,Eclipse 中安装的版本应该与您在 pom.xml 中的版本相同。否则可能会出现奇怪的编译问题,例如某些注释的代码不是在 Eclipse 中生成而是在 maven 中生成的,反之亦然。

Eclipse的安装说明可以在here找到。

安装后检查“关于 Eclipse”对话框并重新启动 Eclipse。它必须包含一些文本,例如“Lombok v1.18.3 “Edgy Guia Pig” is installed.”。如果不是这样,lombok 插件没有正确安装。

如果安装不成功,您应该尝试将 lombok 安装到干净的 Eclipse 安装中(甚至在添加任何项目之前)。

解释: Eclipse 使用自己的编译器(与 maven 使用的 javac 不同)。因此,lombok 也必须挂钩到 Eclipse 编译过程中,因此,Eclipse 需要那个 lombok 插件。

还要注意,Lombok 注释应该永远出现在编译的类文件中,因为 Lombok 注释处理器在生成替换代码时会删除它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多