Mac*_*ius 8 google-app-engine intellij-idea gradle
我正在关注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'
}
Run Code Online (Sandbox Code Playgroud)
我正在使用带有配置的Gradle运行配置从IDEA运行本地开发服务器,appengineRun并使用其他任务停止它appengineStop.这是有效的,但我无法调试,因为我放的断点没有被击中.
我相信断点的这个问题是因为IDEA不知道(我在双关语中很可怕)它必须挂钩支持AppEngine服务器的jetty服务器,但这是一个疯狂的镜头,因为我不知道IDEA的内部,很多更少处理Gradle执行的方式.
我怎样才能重获断点能力?没有自定义插件是否可行?
pgi*_*cek 11
首先,您必须在build.gradle文件中设置JVM调试参数,以便能够远程调试本地开发服务器.
appengine {
...
jvmFlags = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000']
}
Run Code Online (Sandbox Code Playgroud)
然后,您需要在IntelliJ IDEA中创建一个运行/调试配置(基于上述参数),以用于远程运行或调试过程.远程运行/调试使您可以连接到正在运行的JVM.
你可以在这里找到更多细节.但基本上转到运行/编辑配置...,在对话框中单击添加新配置(+)并选择远程.确保配置与JVM标志(尤其是端口)匹配.保存并关闭对话框.
启动本地开发服务器并连接调试器(运行/调试).
| 归档时间: |
|
| 查看次数: |
1908 次 |
| 最近记录: |