【问题标题】:IntelliJ steps through the wrong lines when debugging remote Java applicationIntelliJ 在调试远程 Java 应用程序时跳过错误的行
【发布时间】:2012-10-01 05:32:01
【问题描述】:

我尝试使用 Intellij 远程调试 liquibase 项目的 maven 插件。问题是 IDEA 突出显示了错误的源代码行,我不知道为什么。 我尝试调试的源代码保持不变。我从我在 Intellij 中使用的源手动构建并安装了插件到我的本地 maven 存储库中。 我的 Intellij 版本是 11.1.3,maven 版本是 3.0.4,在 Ubuntu 12.04 上运行。

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

【问题讨论】:

    标签: maven intellij-idea remote-debugging liquibase


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢你们!就我而言,用于构建项目的插件版本与我尝试调试的源代码不同。在构建项目时不检查使用的插件版本对我来说是一件愚蠢的事情。我以为它会使用我的手动构建版本。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      1. 只需指向 pom.xml,即可在 IntelliJ 中加载 liquibase 插件项目。
      2. 选择Edit Configurations...
      3. +按钮到Add New Configuration
      4. 选择Maven
      5. 在要运行插件的项目中输入Working directory
      6. 输入Command line。可以是process-sourcescompileliquibase:status,具体取决于您想做什么。
      7. 确定
      8. 在 Liquibase Mojo 中设置断点。

      现在您可以按 Shift+F9 启动此配置。

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


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

      【讨论】:

      • 效果很好。简单而快速,尽管当一切都在本地计算机上时,远程调试非常快。
      • 我想这取决于情况。如果您正在开发插件,那么这种方法有更好的周转时间。但是在您使用已经开发的插件的情况下,其他解决方案可能会更好。
      猜你喜欢
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多