我的项目有问题。
它是一个 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 部署的 ear 工作正常,但所有实体都没有任何 getter/setter 等等。
我知道 Eclipse 已正确配置,因为我的代码中没有任何与 Lombok 关联的警告,eclipse 的大纲 View 显示了生成的方法。
有人知道这类问题吗?
您还必须在 Eclipse 中安装 lombok 插件。 (请注意,这与项目依赖项中存在的 lombok 有所不同;您需要两者。)此外,Eclipse 中安装的版本应该与您在 pom.xml 中的版本相同。否则可能会出现奇怪的编译问题,比如某些注释的代码不是在 Eclipse 中而是在 Maven 中生成的,反之亦然。
可以找到 Eclipse 的安装说明 here .
安装并重新启动 Eclipse 后,检查“关于 Eclipse”对话框。它必须包含一些文本,例如“Lombok v1.18.3 “Edgy Guinea Pig”已安装。”。如果不是这种情况,则 lombok 插件未正确安装。
如果安装不成功,您应该尝试将 lombok 安装到干净的 Eclipse 安装(甚至在添加任何项目之前)。
说明: Eclipse 使用自己的编译器(不同于 maven 使用的 javac)。所以lombok也必须hook到Eclipse的编译过程中,所以Eclipse需要那个lombok插件。
另请注意,编译的类文件中不应出现 Lombok 注释,因为 Lombok 注释处理器会在生成替换代码时删除它们。