当前位置: 首页 > 知识库问答 >
问题:

Gradle和IntelliJ2016.3.5中带断点的JVM应用程序(Java或Scala)调试

巢权
2023-03-14

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

关于如何使用Gradle和Intellij完成调试,有各种来源:

  1. 使用Intellij调试Gradle插件
  2. 在gradle项目中使用Intellij设置断点(最有帮助的)
  3. https://youtrack.jetbrains.com/issue/idea-119551
  4. https://youtrack.jetbrains.com/issue/idea-86465
  5. https://youtrack.jetbrains.com/issue/idea-119494

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

根据消息来源,这是当时的做法:

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:

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

暂时还没有答案

 类似资料:
  • 问题内容: 我正在用Java和gradle编写控制台应用程序。我正在使用插件,并在中正确配置了必填字段。 在我的主班里,我与有联系。这是问题所在:当我在项目目录中运行时,阅读器不会等待控制台输入。而是在第一次通话时返回。对于我在做什么,这种行为是不可取的。 解决办法是什么?是否有用于gradle的单独的控制台应用程序插件,或者我需要以某种方式调整插件以适合我的需要? 问题答案: 默认情况下,gra

  • (对于那些将我指向Intellij的人来说...虽然JetBrains的网站广告说他们支持在IDEA UI中调试Gradle脚本,但这是不真实的,因为这在IDEA13 EAP中被报告为坏了,在IDEA14中也没有被修复。请参阅Intellij/Android Studio中调试Gradle构建文件) 是否有任何调试工具允许我在build.Gradle文件中设置断点,或者Gradle DSL中是否有

  • 我有一个由Gradle2.4构建的Java库,它将被一些Java6应用程序、一些Java7应用程序、一些Java8应用程序和一些Groovy2.x应用程序使用。因此,为了尽可能地向后兼容,我编写的lib具有和1.6: 但是,我没有理由不能用Groovy/Spock编写单元测试。只要Groovy不是main/compile/runtime类路径的一部分,那么我就可以自由地用任何JVM语言编写测试!我

  • 我在spring应用程序上工作,需要逐步通过一个控制器方法,看看它是如何工作的。我在eclipse中工作,并使用命令构建我的应用程序。 如何在调试模式下运行它?

  • 问题内容: 到目前为止,我一直在使用方法在Java中执行代码。什么时候/为什么要使用或代替? 问题答案: 这是一个特殊的问题,因为这不应该是选择问题。 启动JVM时,你指定要运行的类,并且该类就是程序启动所在的类。 通过,我假设你的意思是JApplet方法。在浏览器中启动小程序时,指定的小程序的方法将作为第一业务顺序执行。 通过,我假设你的意思是Runnable的方法。这是启动新线程时调用的方法。

  • 问题内容: 默认JVM参数对于运行大型应用程序不是最佳的。在实际应用中进行过调整的人员的任何见解都将有所帮助。我们正在32位Windows计算机上运行该应用程序,默认情况下使用该客户端JVM 。我们添加了-server并将NewRatio更改为1:3(更大的年轻一代)。 您是否尝试过其他有用的其他参数/​​调整? [更新]我正在谈论的应用程序的特定类型是很少关闭的服务器应用程序,至少需要-Xmx1