如何在调试模式下通过Gradle运行Jetty

JAR*_*ARC 35 jetty gradle

有谁知道如何配置jetty gradle插件在调试模式下运行,以便我可以附加远程调试器?

我已经尝试将gradle和java选择设置为:

-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n
Run Code Online (Sandbox Code Playgroud)

......但它似乎不起作用.

我能够让我自己的码头安装工作正常,而不是通过gradle(jettyRun或jettyRunWar).

问候.

Lui*_*osa 47

在Linux上:

export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n"
gradle jettyRun
Run Code Online (Sandbox Code Playgroud)

在Windows上:

set GRADLE_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=??n
gradle jettyRun
Run Code Online (Sandbox Code Playgroud)

  • 太好了!我也是.我在Windows上,所以我用`set GRADLE_OPTS = -Xdebug -Xrunjdwp:transport = dt_socket,address = 9999,server = y,suspend = n` (6认同)

akh*_*khl 17

尝试使用Gretty插件,它提供了gradle任务jettyRunDebug,jettyStartDebug等.

源代码和文档:https://github.com/akhikhl/gretty

披露:我是Gretty插件的作者.


tho*_*dge 6

你是否在守护进程模式下运行gradle?据我所知,守护进程将运行jetty实例.因此,您需要为守护程序设置JVM args.这可以通过在gradle.properties中设置org.gradle.jvmargs来实现.

请参阅http://gradle.org/docs/current/userguide/tutorial_this_and_that.html#sec:gradle_properties_and_system_properties

只需在非守护进程模式下工作的项目

的build.gradle:

apply plugin: 'idea'
apply plugin: 'jetty'
Run Code Online (Sandbox Code Playgroud)

的src/main/JAVA/COM/Test.java:

package com;
public class Test {
    static public String greet() {
        return "Hi";
    }
}
Run Code Online (Sandbox Code Playgroud)

SRC /主/ web应用/ index.jsp的:

<%@ page import="com.Test" %>
<html><body>
<%= Test.greet() %>
</body></html>
Run Code Online (Sandbox Code Playgroud)

命令行(虽然在cygwin中):

$ GRADLE_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n' gradle jettyRun
Run Code Online (Sandbox Code Playgroud)

Gradle然后挂起,我可以将Intellij的调试器放在端口9999上,并在java文件中设置断点.当我然后尝试打开网页时,码头通知我将会遇到断点.


use*_*119 5

我是一个多项目的gradle构建,我试过:

$ export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,suspend=y,server=y"
$ gradle jettyRun
Run Code Online (Sandbox Code Playgroud)

这没用.我甚至尝试将-Xnoagent添加到上面的GRADLE_OPTS设置中,但这也没有什么区别.此外,设置JAVA_OPTS而不是GRADLE_OPTS也没有解决问题.是什么解决了我的问题是添加gradle.properties:

org.gradle.jvmargs=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=5005,suspend=y
Run Code Online (Sandbox Code Playgroud)

我马上就能打到断点.可能是其他答案中提到的解决方案对我不起作用,因为它是一个多项目构建.不确定!

只是想提供适合我的解决方案,以防上述解决方案对其他人不起作用.

PS:尝试使用gradle 1.5/1.6并将上面的设置添加到gradle.properties适用于这两个版本!