Yur*_*kov 5 java debugging intellij-idea gradle vert.x
我正在Vert.X使用Gradle构建工具使用框架开发项目.IntelliJ我遇到的问题是断点在我尝试的任何方式都不起作用.
这是Vert.X我在Gradle中使用的运行配置:
run {
args = [
'run', mainVerticleName,
"-conf", confPath,
"--redeploy=$project.ext.watchForChange",
"--launcher-class=$mainClassName",
"--on-redeploy=$project.ext.doOnChange"
]
}
Run Code Online (Sandbox Code Playgroud)
因此,部署完成后使用Gradle,运行没有任何问题,IntelliJ调试器已连接,但断点不起作用.
我试图让它运作的方式:
1)Gradle运行配置.这是一个运行配置Intellij IDEA:

尝试使用远程调试工具,使用以下VM选项启动应用程序:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
但这没效果.
在这种情况下,我无法启动项目,因为我在启动时收到以下消息:
Error: Could not find or load main class io.vertx.core.Launcher
Vert.X Core 库是在类路径和配置似乎是正确的,所以不能得到的是问题.
项目的源代码是公开的,可以在以下位置找到GitHub:
Vert.X版本 - 3.4.0.Gradle版本 - 3.4.1.IntelliJ IDEA版本 - 2016.3.5.操作系统 - MacOS Sierra 10.12.3.
有趣的是,当我Vert.X从测试部署时- 断点起作用.在我上面描述的情况下,为什么断点不起作用的任何想法?
以下是这两个问题的解决方案.感谢@CrazyCoder提供的帮助.
1)run命令在单独的VM中运行.所以,为了使它工作,我--java-opts在脚本中添加了参数:
run {
args = [
'run', mainVerticleName,
"-conf", confPath,
"--redeploy=$project.ext.watchForChange",
"--launcher-class=$mainClassName",
"--on-redeploy=$project.ext.doOnChange",
// used for attaching remote debugger
"--java-opts", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000"
]
}
Run Code Online (Sandbox Code Playgroud)
这允许Remote debug在端口上附加配置8000.
2)默认情况下,Intellij IDEA每个源集创建单独的模块,因此我有源集api_main和api_test模块.关闭此功能后 - 应用程序调试运行开始起作用.
可以在Gradle设置中关闭此功能.Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle:取消选中每个源集创建单独的模块.
这是一个IntelliJ IDEA问题 - 参考.
| 归档时间: |
|
| 查看次数: |
2163 次 |
| 最近记录: |