调试远程Java应用程序时,IntelliJ会逐步执行错误的行

时间:2012-10-10 16:56:29

标签: maven intellij-idea remote-debugging liquibase

我尝试使用Intellij远程调试liquibase项目的maven插件。问题是IDEA突出了错误的源代码行,我无法理解为什么。 我尝试调试的源代码不受影响。我从我在Intellij中使用的源代码中手动构建并安装了我的本地maven存储库中的插件。 我的Intellij版本为11.1.3,maven版本为3.0.4,在Ubuntu 12.04上运行。

为了调试maven插件,我使用了mvnDebug命令。 如果有人对什么是错误有任何想法,请给我一些建议。如果您需要更多信息,请询问。我不太习惯远程调试(实际上这是我第二次这样做)所以我可能会删除你需要的一些信息。

3 个答案:

答案 0 :(得分:13)

对我来说,每当IntelliJ突出显示错误的行时,总是因为用于运行应用程序的JAR /类的版本与我的源文件不同 - 即使用不同版本的源来构建JAR和/或上课。

您必须确保使用的是用于构建正在调试的类的确切源代码。

您可以通过查看用于启动应用程序的类路径,查找包含要调试的类的JAR文件或类目录,并验证它们是否是从您正在检查的源构建来验证这一点。

请注意,在调试第三方库时,通常可以下载“sources”jar(请参阅IntelliJ2-IDEA get Maven-2 to download source and documentation)。

答案 1 :(得分:3)

如果您偶然发现了这篇文章,并确定源代码和JAR是相同的代码,那么这可能是您的问题。

http://youtrack.jetbrains.com/issue/IDEA-8021

答案 2 :(得分:1)

您可以直接从IntelliJ运行插件,而不是进行远程调试。

  1. 只需指向pom.xml,就可以在IntelliJ中加载liquibase插件项目。
  2. 选择Edit Configurations...
  3. + 按钮至Add New Configuration
  4. 选择Mavenenter image description here
  5. 输入要运行插件的项目的Working directory
  6. 输入Command line。可以是process-sourcescompileliquibase:status,具体取决于您的目标。
  7. 确定
  8. 在Liquibase Mojo中设置断点。
  9. 现在您可以按 Shift + F9 启动此配置。

    Maven会启动,最后你会看到你的插件在断点处等待!


    确保您已使用正确的版本在目标pom.xml中定义了插件,并且在启动之前构建了插件。您可以通过在Make窗格中启用Before Launch来确保这一点。

    enter image description here