eclipse中的maven jetty调试问题

我正在尝试在eclipse中调试Maven jetty项目。 我正在用“mvn clean jetty:run”盯着docker。 这是我正在使用的完整bat文件(我在Windows上)。

set MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n" mvn clean jetty:run 

我在pom文件中使用jetty-maven-plugin。

bat文件正常工作并启动jetty而没有错误。 在Eclipse中,我创建了一个新的调试配置,选择了“远程Java应用程序”,我使用4000作为主机的端口和localhost。

当我尝试运行此调试配置时,我总是收到此错误:

 "Failed to connect to remote VM. Connection refused. Connection refused: connect" 

有谁知道我怎么解决这个问题? 我检查了这个答案,但没有帮助。

解决方案是您必须在MAVEN_OPTS中将其更改为suspend=y而不是n。 然后你执行mvn jetty:run命令,它会在“Listening for transport dt_socket at address:4000”行中暂停。 之后,运行eclipse调试器,它将附加到进程。

如果你使用suspend = n,它将无法工作(至少对我来说它没有)。

您可以更改您的(maven_folder)/bin/mvn.bat(或sh)并放置您提到的行。

 set MAVEN_OPTS="%MAVEN_OPTS% -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n" 

根据您的maven版本,有一个mvnDebugg文件可以为您执行此操作,在这种情况下,debbug端口将为8000