2

我想在 IntelliJ中调试Dagger生成的代码。Dagger 生成的源文件放入/target/generated-test-sources/test-annotations/target/generated-sources/annotations.

我查看了运行/调试配置对话框,并没有看到任何明显的东西。我还检查了模块设置,这两个都被列为源文件夹,所以 IntelliJ 肯定知道它们是源,但由于某种原因,我在生成的代码中放置的任何断点都不会命中。

4

3 回答 3

2

对于 IntelliJ 13.1.5:

如果/target/generated-sources/annotations被标记为生成的源根,IntelliJ 永远不会触发断点。如果/target/generated-sources/annotations未标记为生成的源根,IntelliJ 将触发断点,但不会跳转到关联的源。

  1. 取消标记/target/generated-sources/annotations为生成的源根
  2. 在生成的源代码中设置断点
  3. 运行代码以触发断点
  4. 标记/target/generated-sources/annotations为生成的源根

IntelliJ 现在按预期运行。完成后您可能需要删除/target/generated-sources/annotations才能再次触发断点。

为此问题创建了一个 IntelliJ 错误。请点赞。

于 2014-10-01T20:36:00.597 回答
0

您所需要的只是 IDEA 可用的源文件,然后您应该能够调试。确保包含文件的文件夹包含在项目结构设置中,然后您应该能够使用 ctrl+n 打开文件并设置断点。

于 2014-03-14T21:23:53.660 回答
0

我的工作解决方法是:

  • 展开生成的工件(jar,war,ear,...)
  • 打开(并反编译)类文件
  • 把断点放在这里

此时 IntelliJ 按预期触发断点。

于 2020-02-18T10:27:21.220 回答