作者:phba | 来源:互联网 | 2023-02-09 13:43
我正在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"
]
}
因此,部署完成后使用Gradle
,运行没有任何问题,IntelliJ
调试器已连接,但断点不起作用.
我试图让它运作的方式:
1)Gradle运行配置.这是一个运行配置Intellij IDEA
:
尝试使用远程调试工具,使用以下VM选项启动应用程序:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
但这没效果.
2)应用程序配置:
在这种情况下,我无法启动项目,因为我在启动时收到以下消息:
Error: Could not find or load main class io.vertx.core.Launcher
Vert.X Core
库是在类路径和配置似乎是正确的,所以不能得到的是问题.
项目的源代码是公开的,可以在以下位置找到GitHub
:
vertx-gradle这个架构起动
Vert.X版本 - 3.4.0.Gradle版本 - 3.4.1.IntelliJ IDEA版本 - 2016.3.5.操作系统 - MacOS Sierra 10.12.3.
有趣的是,当我Vert.X
从测试部署时- 断点起作用.在我上面描述的情况下,为什么断点不起作用的任何想法?
1> Yuriy Yuniko..:
以下是这两个问题的解决方案.感谢@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"
]
}
这允许Remote debug
在端口上附加配置8000
.
2)默认情况下,Intellij IDEA
每个源集创建单独的模块,因此我有源集api_main
和api_test
模块.关闭此功能后 - 应用程序调试运行开始起作用.
可以在Gradle设置中关闭此功能.Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle
:取消选中每个源集创建单独的模块.
这是一个IntelliJ IDEA
问题 - 参考.