Java IntelliJ中生成代码的源代码级调试

Java IntelliJ中生成代码的源代码级调试,java,debugging,intellij-idea,dagger,Java,Debugging,Intellij Idea,Dagger,我想调试成IntelliJ中由生成的代码。Dagger生成的源文件被放入/target/generated test sources/test annotations和/target/generated sources/annotations中 我查看了“运行/调试配置”对话框,没有看到任何明显的内容。我还检查了模块设置,这两个都列为源文件夹,因此IntelliJ肯定知道它们是源代码,但由于某些原因,我不会在生成的代码中设置任何断点。您所需要的只是IDEA可用的源文件,然后您应该能够进行调试。确

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


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

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

对于IntelliJ 13.1.5:

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

  • 取消将
    /target/generated sources/annotations
    标记为generated sources root
  • 在生成的源中设置断点
  • 运行代码以触发断点
  • /target/generated sources/annotations
    标记为generated sources root
  • IntelliJ现在的行为符合预期。完成后,可能需要删除
    /target/generated sources/annotations
    ,才能再次触发断点


    我创造了。请投票。

    我的工作地点是:

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

    此时IntelliJ会按预期触发断点。

    它们已作为源文件夹列在模块设置中。您能打开它们吗?也许您需要将它们所在的文件夹标记为源根目录。这可以通过右键单击文件夹并选择“标记为”来完成。断点是否用“v”或“x”表示?