在 Gradle 和 IntelliJ 2016.3.5 中使用断点调试 JVM 应用程序(Java 或 Scala)

2024-03-09

我有一个 JVM 应用程序,需要在 IntelliJ 2016.3.5 中使用断点和 Gradle 任务(作为依赖项运行和测试)进行调试。

关于如何使用 Gradle 和 IntelliJ 完成调试有多种来源:

  1. 使用 IntelliJ 调试 Gradle 插件 https://stackoverflow.com/questions/11129401/debug-gradle-plugins-with-intellij
  2. 使用Intellij在gradle项目中设置断点 https://stackoverflow.com/questions/17179886/using-intellij-to-set-breakpoints-in-gradle-project(最有帮助的一个)
  3. https://youtrack.jetbrains.com/issue/IDEA-119551 https://youtrack.jetbrains.com/issue/IDEA-119551
  4. https://youtrack.jetbrains.com/issue/IDEA-86465 https://youtrack.jetbrains.com/issue/IDEA-86465
  5. https://youtrack.jetbrains.com/issue/IDEA-119494 https://youtrack.jetbrains.com/issue/IDEA-119494

然而,这些来源要么已经过时,要么适用于另一种情况。我不想调试 Gradle 脚本,而是调试运行实际 Java/Scala 应用程序的 JVM。此外,最新版本的 IntelliJ 使用 Gradle Tooling API,它不提供关闭守护进程的选项。仅直接使用运行和测试任务上的调试按钮来提供 JetBrains 的本机支持,但如果它们被定义为其他任务的依赖项(例如检查),则不会提供本机支持。

据消息人士透露,接下来的路是这样的:

run { // or test, doesn't matter
    jvmArgs "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"
    // xor, or both, doesn't seem to make any difference
    debug true
}

不管怎样,Gradle(或 JVM)将开始监听端口 5005:

然后,我使用以下参数创建了远程配置:

但是当我启动IntelliJ远程调试任务时,它失败了:

我也尝试过使用端口 5006 和 suspend=n 但没有成功。在此之前,我尝试在 IntelliJ-Gradle 运行任务中使用 Gradle 参数。然后,它确实连接了,但似乎连接到了 Gradle 脚本,而不是应用程序 JVM,因为它没有在断点处中断。如何解决这个问题?


Debugging of gradle tasks like 'test', 'run', actually all gradle tasks that implements JavaForkOptions interface, should work in IntelliJ since 2014 year

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Gradle 和 IntelliJ 2016.3.5 中使用断点调试 JVM 应用程序(Java 或 Scala) 的相关文章

随机推荐

  • pthread_create函数中的第四个参数

    代码如下 int code pthread create d gt thread id attr QThreadPrivate start this which QThreadPrivate start是一个静态函数 那么 第四个参数有什么
  • 动态 Linq - String.Split

    Dynamic Linq 似乎没有实现 String Split 方法 有没有办法使用 Dynamic Linq 达到相同的结果 Dynamic Linq 确实支持 String Split 并且还调用其他 net 类型方法 如下所示 va
  • 如何连接回声[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我想知道如
  • 使用 useeffect 和 React Router 执行乱序

    我试图在我的 app js 中使用 useEffect 并将一些数据设置到我的 redux 中 并在我的路由页面 在 useEffect 内 中使用该数据 导致我发现这种奇怪的行为 除非它应该是这样 而且我在错误的 D 这是一个简化的代码来
  • 将绘图文本/二进制写入变量

    有没有办法有一个R设备 后记会很棒 将输出写入变量而不是文件 例如我知道这个 postscript file cat plot 1 10 dev off 将附言文本发送至STDOUT 我怎样才能将该文本放入其中的变量中R 我已经成功地将绘图
  • iOS4 睡眠时 Wifi 连接无法保持

    知道iOS4支持wifi在睡眠状态下保持存活真是一件令人高兴的事情 然而我得到了一些不同的经历 我有 2 台 iPod 第二代 iPod 和第三代 iPod 两者均更新至 iOS 4 beta iPod 2g 可以在睡眠时保持 WiFi 连
  • 安装时自动启动 Windows 服务

    我有一个使用 InstallUtil exe 安装的 Windows 服务 即使我已将启动方法设置为自动 但该服务在安装时并未启动 我必须手动打开服务并单击启动 有没有办法通过命令行或通过服务代码启动它 在 Installer 类中 添加
  • 如何将环境配置文件配置添加到 SBT

    在 Maven 中 您可以拥有 Profiles 它可以为不同的环境设置构建配置 例如 DEV QA UAT 生产 为了支持持续集成 必须有一种方法来告诉 SBT 在哪个环境上运行 如何在 SBT 中针对不同环境进行设置 例如 DEV QA
  • 使用 unnest 在 postgreSQL 中进行批量更新

    我正在尝试进行批量更新 gt update ti table set enabled T enabled from select from unnest array 2001622 2001624 2007903 as id unnest
  • 如何在本机反应中使用 MapLibre GL Js

    我正在寻找一种在我的反应本机应用程序中使用 OpenStreetMap 数据的方法 在我最近的研究中 我发现MapLibre https maplibre org 这是基于MapBox GL旧版本的免费选项 我面临的问题是 除了 react
  • 在线生成 JHipster 应用程序提供空白页面

    当我从本地安装的 JHipster 4 7 生成应用程序时 我可以通过运行 mvnw 在 localhost 8080 上启动它 没有任何问题 但是当我在线生成项目时https start jhipster tech https start
  • 如何用动画取消隐藏视图

    假设我在 iOS 版 Xcode 中有一个隐藏视图 现在 当我将视图设置为不隐藏 view hidden NO 时 如何使其现在显示 但带有动画 你可能想要的不是设置view hidden 但要设置view alpha to 0 对应于hi
  • sqlalchemy 连接到服务器,不指定数据库

    是否可以连接到MSSQL服务器 using sqlalchemy然后创建数据库 我使用以下内容 sqlalchemy create engine mssql pyodbc sa pwd localhost 但我收到一个错误 Detail D
  • XML:尾随部分不允许有内容

    我收到这些错误 Multiple annotations found at this line error Error parsing XML not well formed invalid token Content is not all
  • GraphQL:你能改变查询的结果吗?

    书面这个问题 https stackoverflow com questions 52318135 defining mutations in graphql via fields is this bad practice 52322818
  • .net 中的 Ftp 文件监视程序(如 SystemFileWatcher)?

    在我的项目中 我需要连续观看多个 FTP 文件夹 如果有任何新文件出现 我需要选择文件名并执行一些处理 如果那是正常的 Windows 本地文件系统文件夹 我可以通过使用来实现系统文件观察器 net 的 有没有类似的东西系统文件观察器观看
  • 在 C++/CLI 中使用 .NET (3.5) 任务并行库

    好吧 我下载了 Reactive Extensions for NET 3 5 以便在 Visual Studio 2008 中通过 c cli 使用它 但所有任务并行库示例都是用 C 编写的 我什至无法弄清楚将简单的 C 语句转换为 C
  • Xamarin.iOS 上的本地化

    我正在尝试解决 Xamarin iOS 上的本地化问题 总的来说 我对本地化很陌生 但我们想要做的第一种语言是冰岛语 如果你查看 iOS 设备本身的设置 冰岛语不是一个选项 所以这是一个由两部分组成的问题 如何在我的应用程序中设置本地化 我
  • WPF/C#:如何在 TabControl 中引用 TabItem?

    我确信我错过了一些简单的东西 但我必须承认 在这一点上我不知所措 我以编程方式将 TabItems 添加到我的主 TabControl 一个对应于用户选择打开的每个帐户 在创建和添加新的 TabItem 之前 我想检查用户是否已在另一个选项
  • 在 Gradle 和 IntelliJ 2016.3.5 中使用断点调试 JVM 应用程序(Java 或 Scala)

    我有一个 JVM 应用程序 需要在 IntelliJ 2016 3 5 中使用断点和 Gradle 任务 作为依赖项运行和测试 进行调试 关于如何使用 Gradle 和 IntelliJ 完成调试有多种来源 使用 IntelliJ 调试 G