debugging - 如何调试使用 Gradle 构建的 Play 2 应用程序

标签 debugging intellij-idea gradle playframework

似乎有关于 debugging Play 的大量文档应用with IntelliJ IDEA ,但他们都假设 Play 是用 SBT 构建的。

使用 Gradle 进行调试应该像以下一样简单:

  • 设置一些断点
  • 运行 GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9999"gradlew --no-daemon :runPlayBinary
  • 运行如下所示的 IntelliJ 远程配置:

IntelliJ Remote Configuration

我遇到的问题是:从未遇到断点,处理继续正常进行。 技术:Play 2.3.X、IDEA 14.1、Gradle 2.8、Scala 2.10

我一定漏掉了一些东西,那是什么?

最佳答案

您在错误的位置设置了调试参数。在 GRADLE_OPTS 中设置它定义了运行 Gradle 时要使用的系统属性。由于 Gradle 启动一个新的 JVM 进程来执行 Play Framework 应用程序,因此您必须将这些属性传递给运行该应用程序的 JVM。

您可以使用 PlayRun 任务添加 JVM 参数。像这样的事情:

tasks.withType(PlayRun) {
    forkOptions.jvmArgs = ['-Xdebug', 
                          '-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999']
}

但请注意,此设置将在每次执行应用程序时设置 Debug模式。也许您应该添加一些参数来验证是否需要 Debug模式。

之后就可以在IDE中正常设置远程调试了。

希望有帮助;)

关于debugging - 如何调试使用 Gradle 构建的 Play 2 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33816953/

相关文章:

c++ - Qt 调试:如何知道 QCoreApplication::notifyInternal2 向哪个对象发送消息?

javascript - 使用 System.js 在 Angular 2 应用程序中导入 Visionmedia 调试以及如何记录消息?

scala - 在 IntellijIdea 10 上运行 Scala 2.9.0 应用程序

java - Gradle在相关测试项目中找不到包

android - 模块化 Play 服务在 gradle 中不起作用?

linux - 如何调试 bash 提示符?

c# - 在 Visual Studio 和 C# 中调试动态创建的类

java - 检查您的模块类路径是否存在缺失或冲突的依赖项

java - 从 Tomcat 获取日志

windows - Android Studio Gradle 构建错误 : Read Time Out