【问题标题】:How to get lombok generated source to be visible in eclipse/maven?如何让 lombok 生成的源在 eclipse/maven 中可见?
【发布时间】:2019-07-26 13:26:14
【问题描述】:

我正在尝试使用 lombok (https://projectlombok.org/) 来帮助生成“样板”代码。我已经添加了 maven 依赖,还添加了 lombok maven 插件到 POM 中的<build> 元素。

我还被告知要做的一件事是将带有 lombok 注释的代码放在 src/main/lombok 而不是 src/main/java 中。我假设我保持包目录结构与src/main/java 中的相同。

这似乎有点奇怪,但我这样做了,lombok 确实使用所有 getter/setter/equals/hashCode 等方法生成了源文件。它们被放置在例如target/generated-sources/lombok/x/y/z/MyClass.java。这是我在使用 XJC 等其他代码生成工具时所期望的。

我的问题是:如何让这个生成的源代码对 eclipse 和编译环境“可见”?我到处都是编译错误,因为它无法“看到”生成的代码。这发生在 Eclipse 以及当我尝试执行 mvn clean install 时。

更新

我已经尝试将 lombok 安装到 Eclipse 中。它生成 getter/setter/etc,但是在某处引入了一个错误,破坏了 eclipse 的自动完成功能。我从 eclipse 中删除了它,只是想让 maven 进行生成(或 delombok-ing)。

【问题讨论】:

  • 你从哪里得到 src/main/lombok 的想法?这听起来真的很糟糕。您是否遵循例如baeldung.com/lombok-ide 关于如何安装 lombok 并在 IDE 中进行设置?
  • 来自 maven 插件站点。 anthonywhitford.com/lombok.maven/lombok-maven-plugin/usage.html。我同意这听起来很奇怪。
  • @howlger "参见 projectlombok.org/setup/eclipse" 去过那里,做到了。这是一个不同的故事,我向 Lombok 谷歌小组发布了一个问题。我将它安装到 eclipse 中,它很好地生成了代码并且它是可见的 - 但它引入了一个问题,即 eclipse 自动完成在某些情况下被破坏。
  • @JosephGagnon 那是“我也被告知...”,对吗?如果是,请添加一个指向您被告知的 Lombok google 组的链接。

标签: java eclipse maven lombok


【解决方案1】:

下载 Lombok jar (https://projectlombok.org/download) 并执行它java -jar lombok.jar 并选择您的 eclipse 安装文件夹。重新启动 eclipse 并重建项目。

要验证 Lombok 安装,请查看帮助 -> 关于 eclipse。龙目岛入口显示在底部。

【讨论】:

  • 已经走上了这条路。之后出现上述问题。
  • 如果你看到编译错误意味着 lombok 插件没有正确添加到 eclipse... 你在使用@Data 吗?请您检查帮助 -> 关于 eclipse..底部的 Lombok 条目应该显示。
  • 是,帮助 -> 关于 Eclipse 显示的信息与图像中显示的信息相同。顺便说一句 - 我如何在 SO 中嵌入图像?
  • 你是否执行了项目 -> 清理?..确保选择自动构建。
【解决方案2】:

我刚刚在我的新 Eclipse (STS) 安装中安装了 Lombok(一段时间后),我对缺少生成的源有点“恼火”。

我发现了一个提示,但是 on this page 生成的结构在“大纲”视图中可见。 (寻找截图)

如果您还没有打开大纲视图,请在菜单中启用它:窗口/显示视图/大纲。

【讨论】:

    【解决方案3】:

    您必须为 Eclipse 启用注释处理才能获取生成的代码。

    1. 右键单击项目并选择Properties
    2. 打开Java Compiler,然后打开Annotation Processing。检查Enable annotation processing
    3. 打开Java Compiler -> Annotation Processing -> Factory Path。查看 Enable project specific settings。将您的 Lombok JAR 文件添加到列表中。
    4. 清理并构建项目。

    【讨论】:

    • 试过这个,但没有效果。
    【解决方案4】:

    我的问题是使用完整的命名空间注释:@lombok.Getter,我通过执行 import lombok.Getter 和执行 @Getter 解决了它

    【讨论】:

      猜你喜欢
      • 2015-06-16
      • 2014-11-19
      • 1970-01-01
      • 2016-12-05
      • 2020-08-19
      • 1970-01-01
      • 2010-11-14
      • 2020-08-21
      • 1970-01-01
      相关资源
      最近更新 更多