如何在 Lombok 中调试自定义注释?

How can I debug a custom annotation in Lombok?

我正在尝试通过创建自己的注释来扩展 Lombok

我设法让 ant 创建了 LombokizedEclipse.launch,并且我已经编写了 beforeafter 文件。

ant test 我的注释失败(这是预期的),现在我想调试我的 Handle* 类.

我正在使用 Mac、eclipse Luna 4.4 和 java 1.8 更新 45。

我该怎么做?如果您需要更多信息,请告诉我。

提前致谢!

您可以运行在Eclipse中进行单元测试并设置断点。 运行 /test/transform/src/lombok/transform/TestWithDelombok.java 用于仅测试 javac,/test/transform/src/lombok/transform/RunTransformTests.java 用于 运行 宁所有测试。

披露:我是 Lombok 开发人员。

我现在明白 Lombok 可以通过两种不同的方式进行调试:

  1. 通过 Lombok JUnit 测试进行调试(感谢
  2. 在第一个实例启动的第二个 Eclipse 实例中调试

克隆 lombok 存储库后,这些是我实现这两种方法所遵循的步骤:

通过 Lombok JUnit 测试进行调试(感谢

  1. $ ant eclipse
  2. 在 Eclipse 中导入(现有)项目
  3. $ ant setupJavaOracle8TestEnvironment
  4. $ ant dist
  5. $ java -jar dist/lombok.jar
  6. 确保在 Eclipse 中配置的 JDK8 被调用 JavaSE-1.8。转到 Eclipse -> Preferences -> Java -> Installed JREs 进行更改
  7. 刷新 Eclipse 项目(只需按 F5
  8. 右键单击新创建的启动配置 RunLombokTests OracleJDK8.launch 和 Run/Debug
  9. RunAllTests被执行:Runs: 455/454 (1 skipped), Errors: 0, Failures: 89
  10. $ ant test 运行 RunAllTests 成功:Tests run: 455, Failures: 0, Errors: 0, Skipped: 1
  11. 注意:设置一个断点,例如HandleGetter.handle 有效 我不知道为什么在 Eclipse 中(第 9 步)89 个测试在 TestWithEcj 中失败,尽管剩下的 54 个(和 1 个跳过)通过了。

在第一个实例启动的第二个 Eclipse 实例中调试

  1. $ ant dist
  2. $ ant eclipseForDebugging
  3. 输入您的 eclipse 安装(提示:它是目录 plugins 的父文件夹)
  4. 启动 Eclipse 并刷新项目
  5. 右键单击新创建的启动配置LombokizedEclipse.launch和Run/Debug
  6. 在第二个Eclipse实例中新建项目
  7. 将自定义 lombok.jar 添加到类路径
  8. 使用 Lombok(或您的自定义)注释进行注释
  9. 如果调试(并且有断点),第一个 Eclipse 实例应该接管