【问题标题】:Has anyone used Ant4Eclipse with Project Lombok?有人在 Lombok 项目中使用过 Ant4Eclipse 吗?
【发布时间】:2023-04-07 09:36:01
【问题描述】:

有没有人成功结合使用 Ant4Eclipse (http://www.ant4eclipse.org/) 和 Project Lombok (http://projectlombok.org/)?

Lombok 提供了移除样板代码的注解;但是,它似乎不能很好地与 Ant4Eclipse(Eclipse 项目的无头编译)配合使用。例如,以下 Lombok 示例在 Eclipse 和 javac 中编译良好:

import lombok.Getter;
public class LombokTest {
  private @Getter String foo; 
  public LombokTest() {
    String s = this.getFoo();
  }
}

但是使用 Ant4Eclipse 的 <buildJdtProject> 编译会产生以下结果:

[javac] Compiling 1 source file
[javac] ----------
[javac] 1. WARNING in C:\dev\Java\workspace\LombokTest\src\LombokTest.java (at line 4)
[javac]     private @Getter String foo;
[javac]                            ^^^
[javac] The field LombokTest.foo is never read locally
[javac] ----------
[javac] 2. ERROR in C:\dev\Java\workspace\LombokTest\src\LombokTest.java (at line 8)
[javac]             String s = this.getFoo();
[javac]                             ^^^^^^
[javac] The method getFoo() is undefined for the type LombokTest
[javac] ----------

有人成功地一起使用了这些库吗?

谢谢!

编辑sample project 演示问题

【问题讨论】:

    标签: java eclipse ant lombok


    【解决方案1】:

    我最终设法用 ant4eclipse 编译了一个 lombok 项目,方法是先用

    对项目进行 delomboking
    <delombok verbose="true"; encoding="UTF-8" 
        to="${workspaceDirectory}/myproject/src" 
        from="${workspaceDirectory}/myproject/src-original" />
    

    【讨论】:

      【解决方案2】:

      IIRC 为了在 Eclipse 中使用 Lombok,在启动时需要一个参数来将 Lombok 的 Java 代理引入 JDT 编译过程。这通常在eclipse.ini 文件中指定。如果 Ant4Eclipse 也没有使用这些参数(我不明白为什么会这样),您可能还需要为此指定 -javaagent:lombok.jar 参数。

      免责声明:这只是一个猜测。

      【讨论】:

        【解决方案3】:

        提供的项目在使用 Java 6 的 Eclipse Java EE 3.5.2 中无法直接编译。Eclipse 中的错误与 ant4eclipse 给出的错误相同。

        【讨论】:

        • 对不起,我应该注意到:您需要先将 Lombok 安装到 Eclipse 中(通过双击 lib/lombok/lombok.jar)。
        • 你的意思是添加 lombok.jar 到构建路径?
        • 不,lombok 需要挂钩到 Eclipse。它使用 java 代理来做到这一点。如果您下载 lombok.jar 并运行 java -jar lombok.jar 您将获得一个安装程序屏幕,其中包括一个说明它将如何修改您的 Eclipse 安装的按钮。是的,您还必须将其添加到构建路径中。
        • 所以问题是您还需要将 lombok 挂接到您的 ant4eclipse 配置中。 lombok 文档中关于在 ant 中使用的说明是什么?
        • 对于 ant 和 javac,你只需要确保它在编译器的类路径中。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-01
        • 1970-01-01
        • 2022-07-28
        • 1970-01-01
        • 2019-12-07
        相关资源
        最近更新 更多