gpt4 book ai didi

java - Intellij IDEA 调试器不适用于 Gradle Vert.X 项目

转载 作者:搜寻专家 更新时间:2023-10-31 19:43:36 24 4
gpt4 key购买 nike

我正在使用 Gradle 构建工具使用 Vert.X 框架开发一个项目。我遇到的问题是 IntelliJ 中的断点根本无法以我尝试过的任何方式工作。

这是我在 Gradle 中使用的 Vert.X 的运行配置:

run {
args = [
'run', mainVerticleName,
"-conf", confPath,
"--redeploy=$project.ext.watchForChange",
"--launcher-class=$mainClassName",
"--on-redeploy=$project.ext.doOnChange"
]
}

所以部署是使用 Gradle 完成的,运行没有任何问题,IntelliJ 调试器已连接,但断点不起作用

我尝试过的方法:

1) Gradle 运行配置。以下是 Intellij IDEA 的运行配置: Intellij Run Configuration using Gradle

尝试使用远程调试工具,使用以下 VM 选项启动应用程序:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

但这没有用。

2) 应用配置: IntelliJ Run Configuration using Application

在这种情况下,我无法启动项目,因为我在启动时收到以下消息:

错误:无法找到或加载主类 io.vertx.core.Launcher

Vert.X Core 库在类路径中并且配置似乎是正确的,所以无法获取是问题所在。

项目的源代码是公开的,可以在GitHub上找到:

vertx-gradle-architecture-starter

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"
]
}

这允许在端口 8000 上附加远程调试 配置。

2) 默认情况下,Intellij IDEA 为每个源集创建单独的模块,因此我有 api_mainapi_test 模块的源集。关闭此功能后 - 应用程序调试运行开始工作。

这可以在 Gradle 设置中关闭。 Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle:取消选中为每个源集创建单独的模块。

enter image description here

这是一个 IntelliJ IDEA 问题 - reference .

关于java - Intellij IDEA 调试器不适用于 Gradle Vert.X 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42716493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com