我在Eclipse IDE中有一个Gradle项目,我通常使用选项gradle run
来运行我的Java应用程序。
我的Java代码中有一个错误,我想调试它,但是当我执行gradle run
时,调试器不会在断点处停止。在" Debug as"菜单,我没有像gradle debug
那样的东西。
如何调试我的应用程序?
答案 0 :(得分:23)
要在Eclipse中调试Gradle项目,请执行以下步骤:
第1步:
将它们放在build.gradle
文件中:
tasks.withType(JavaExec) {
if (System.getProperty('DEBUG', 'false') == 'true') {
jvmArgs '-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9099'
}
}
第2步:
从项目的根目录开始:
gradle -DDEBUG=true run
现在,您将在控制台中看到类似的内容:
Listening for transport dt_socket at address: 9099
第3步:
现在在源文件中设置Eclipse中的断点。
第4步:
最后一步,现在右键单击Eclipse on Project>调试为>调试配置>远程Java应用程序。
你必须设置这些字段:
1. Project (this should be set to name of your Eclipse project)
2. Host (here it's localhost)
3. Port (in this example it will be 9099)
点击"调试"。现在,只要它在Eclipse中遇到断点,你的程序就会停止。
要查看示例项目的详细信息,请参阅this gradle example on GitHub:
答案 1 :(得分:22)
尽管接受的答案应该有效,但您可以更容易地实现它。
只需运行gradle run --debug-jvm
。这将以远程调试模式启动应用程序,您可以在端口5005
上连接任何远程调试器,例如Eclipse。
假设您使用Eclipse作为IDE:在Eclipse中,继续使用Project - >调试为... - >调试配置 - >远程Java应用程序。作为主机集localhost
,作为端口5005
,您可以自由选择。
有关测试的更多信息see the official Gradle Java plugin doc。
[...]也可以在调用时通过--debug-jvm任务选项启用(自Gradle 1.12起)。
答案 2 :(得分:0)
通过在build.gradle文件中添加以下代码,我无法在调试模式下运行gradle任务。
onTrigger
相反,我执行了以下步骤并设法在调试模式下自动运行它:
gradle(UNIX)情况:
tasks.withType(JavaExec) {
if (System.getProperty('DEBUG', 'false') == 'true') {
jvmArgs '-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005'
}
}
gradle.bat(NT)案例:
DEFAULT_JVM_OPTS="-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
。 4.从控制台运行Gradle命令。