如何从IDEA+Gradle调试AppEngine本地服务器?

2024-03-25

我正在学习 Udacity App Engine 课程,但作为修补者,我正在使用 Gradle 和 IDEA(开源版本)。

我已经使用以下 build.gradle 文件成功设置了项目

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.7'
    }
}

apply plugin: 'war'
apply plugin: 'appengine'

sourceCompatibility = 1.8
version = '1.0'

appengine {
    daemon = true
    downloadSdk = true

    appcfg {
        oauth2 = true
    }
}

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.7'

    compile 'com.google.inject:guice:3.0'
    compile 'com.googlecode.objectify:objectify:5.0.3'
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.7'
    compile 'com.google.appengine:appengine-endpoints:1.9.7'
    compile 'javax.servlet:servlet-api:2.5'
    compile 'javax.inject:javax.inject:1'

    testCompile 'junit:junit:4.11'
    testCompile 'com.google.appengine:appengine-testing:1.9.7'
    testCompile 'com.google.appengine:appengine-api-stubs:1.9.7'
}

我正在使用 Gradle 运行配置从 IDEA 运行本地开发服务器appengineRun配置并使用另一个任务停止它appengineStop。这是可行的,但我无法调试,因为我设置的断点没有被命中。

我相信断点的这个问题是因为IDEA不知道(我对双关语很糟糕)它必须连接到支持AppEngine服务器的jetty服务器,但这是一个疯狂的镜头,因为我对IDEA的内部结构一无所知。更少的是它如何处理 Gradle 执行。

如何恢复断点能力?没有自定义插件是否可行?


首先,您必须在 JVM 中设置 JVM 调试参数build.gradle文件,以便您能够远程调试本地开发服务器。

appengine {
    ...
    jvmFlags = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000']
}

然后您需要在IntelliJ IDEA中创建一个运行/调试配置(基于上述参数)以用于远程运行或调试进程。远程运行/调试使您能够连接到正在运行的 JVM。

您可以找到更多详细信息here http://www.jetbrains.com/idea/webhelp/run-debug-configuration-remote.html。但基本上都是去运行/编辑配置...,在对话框中单击添加新配置(+) 并选择Remote。确保配置与 JVM 标志(尤其是端口)匹配。保存并关闭对话框。

启动本地开发服务器并连接调试器(运行/调试).

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

如何从IDEA+Gradle调试AppEngine本地服务器? 的相关文章

随机推荐

  • 在python中独立运行多个while true循环

    本质上我有 2 while True 在我的代码中循环 两个循环都在最后 但是 当我运行代码时 只有第一个循环while True 循环开始运行 第二个循环被忽略 例如 while True print hi while True prin
  • 在 PostgreSQL 中,我们如何判断表的每个索引是否是聚簇的? [复制]

    这个问题在这里已经有答案了 在 PostgreSQL 中 我们如何判断表的每个索引是否是聚簇的 这对应于在MySQL中 我们如何判断表的索引是否是聚集索引 https stackoverflow com questions 51182951
  • 我可以动态重命名oozie作业名称吗

    我们有一个 Hadoop 服务 其中有多个应用程序 我们需要通过重新执行相同的工作流程来处理每个应用程序的数据 这些计划在一天的同一时间执行 问题是 当这些作业运行时 很难知道作业正在为哪个应用程序运行 失败 成功 当然 我可以打开作业配置
  • CSS中如何结合粗体和斜体?

    此 W3Schools 教程 http www w3schools com cssref pr font font style asp教我如何使用CSSfont style属性使文本变为粗体 相当于
  • Intellij:提交之前:运行 git hooks

    我想在提交之前启用 运行 git hooks 我知道这是可能的 因为我启用了它一次 在一个项目中 如下所示 但我不记得 弄清楚如何在另一个项目中做到这一点 你能帮忙吗 thanks 引用自IJ论坛 https intellij suppor
  • 使用 libxml-ruby 逐块处理大型 XML 文件

    我想读一本大书XML http dblp uni trier de xml 包含超过一百万个小书目记录的文件 例如
  • 调试 Android 应用程序? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我现在正在努力提高我的编程技能 特别是我现在想知道如何调试应用程序有点滞后的情况 我尝试将大部分关键部分移至线程 但仍然收到一些 AN
  • 在 React JS 中设置复选框值

    我正在尝试使用以下命令更改复选框的值onChange另一个输入字段的功能 我有这样的事情 class price extends React Component constructor props super props this stat
  • 使用 adb 连接到 LG 手机时出现问题 (Mac OS X 10.7.5)

    当我跑步时adb devices没有设备显示为已连接 我的设备是运行 4 4 2 的 LG Optimus Exceed 2 周围有很多这样的帖子 所以这就是我所做的 我正在使用电话附带的数据线 它会充电并尝试同步照片 因此这不是问题 切换
  • Ionic 4 IOS FIRESTORE 内部断言失败:AsyncQueue 已失败:索引数据库服务器中遇到内部错误[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在开发一个 Ionic 应用程序 我使用 Firestore 作为数据库 使用离线模式 import Angular
  • Android 模拟器 - 无效的命令行参数:

    当我尝试启动我的Android 虚拟设备 http developer android com guide developing devices index html 我收到以下错误 文件 Android android sdk windo
  • 接收我的应用程序的意图“android.settings.APPLICATION_DETAILS_SETTINGS”

    我想要得到包裹名字 and 班级名称收到的intent 但我无法得到它 我想让我的应用程序安全 因此它在卸载之前会要求输入密码 只有安装该应用程序的用户知道密码 因此只有他 她才能卸载该应用程序 我的接收器代码 public class P
  • Python在if语句中使用正则表达式匹配对象,然后像Perl一样访问捕获组

    是否可以在 Python 中执行类似以下 Perl 代码的操作 据我所知 答案是否定的 但我想我应该仔细检查一下 我想在 Python 中复制 Perl 代码 usr bin perl my line hello1234world if l
  • Node.js并发连接限制[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我写了一个琐碎的node js客户端 服务器对来测试并发连接的本地限制 它们之间不发送任何数据 10 000 个客户端连接并等待
  • Makefile 生成器创建两个文件

    我有一个生成器程序 可以创建两个版本文件 例如ver h and ver cpp 我的最终构建目标取决于这两个文件 构建这两个文件的规则就是一个程序 如果我这样做 build ver h ver cpp ver h ver cpp gen
  • Javascript通过数据属性中的函数名称回调

    我试图为 ajax 调用提供回调函数 其中函数名称保存在表单的 data apply 属性下 jQuery function form data async on submit function event var form this va
  • MS Access:如果空白则忽略查询条件

    我在 Access 中有一个表单 我在其中基于多个文本框运行查询 我对从文本框中提取的几个查询字段应用条件 但希望查询在文本框为空时忽略这些条件 例如 如果 Machine TextBox 为空 则不要将条件应用于 Events Machi
  • 元素在故事板文件中出现和消失

    这不是一个大问题 但很烦人 每次我在 Interface Builder 中编辑故事板并且想要将其签入修订控制系统时 都会生成或删除一个元素 如果存在 则将其删除 反之亦然 它给我的签到增加了不必要的噪音 有人知道发生了什么以及如何解决它吗
  • 获取点击的div的id

    我想选择id当我在 jQuery 中单击当前 div 时 例如 假设我有这样的 HTML div class item hello world div div class item 10 hello people div 当我点击第一个 d
  • 如何从IDEA+Gradle调试AppEngine本地服务器?

    我正在学习 Udacity App Engine 课程 但作为修补者 我正在使用 Gradle 和 IDEA 开源版本 我已经使用以下 build gradle 文件成功设置了项目 buildscript repositories mave