Java 无法使用调试器附加到正在运行的spring集成测试

Java 无法使用调试器附加到正在运行的spring集成测试,java,spring,maven,intellij-idea,Java,Spring,Maven,Intellij Idea,我正在使用maven运行spring集成测试。我试图在启用调试端口的情况下运行它,以便可以从IntelliJ idea连接到它 下面的命令行过去常用于工作。它用于允许surefire启动初始化,然后等待连接到端口8000,然后再继续测试: -Dmaven.surefire.debug=“-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000-Xnoagent-Djava.compiler=NONE”-DtestIn

我正在使用maven运行spring集成测试。我试图在启用调试端口的情况下运行它,以便可以从IntelliJ idea连接到它

下面的命令行过去常用于工作。它用于允许surefire启动初始化,然后等待连接到端口8000,然后再继续测试:

-Dmaven.surefire.debug=“-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000-Xnoagent-Djava.compiler=NONE”-DtestIntegration test

但是,这给了我以下例外情况:

[错误]在当前项目和插件组[com.zillow,org.apache.maven.plugins,org.codehaus.mojo]中找不到前缀“runjdwp”的插件,这些插件可从存储库[local(/home/ferozed/.m2/repository-p4)、nexus(->[Help 1] org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException:在当前项目和插件组[com.zillow,org.apache.maven.plugins,org.codehaus.mojo]中未找到前缀“runjdwp”的插件,这些插件可从存储库[local(/home/ferozed/.m2/repository-p4),nexus获得( 位于org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve(DefaultPluginPrefixResolver.java:93) 位于org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix(MojoDescriptorCreator.java:260) 位于org.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor(MojoDescriptorCreator.java:220) 位于org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:106) 位于org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:86) 位于org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:98) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) 位于org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)


有什么想法可以让它工作吗?

我记得以前处理过这个问题。您使用的调试选项在您的Java.Java.5版本中可能已被弃用,并且未被充分使用
-Xrunjdwp
。我相信Java 7和更高版本(不确定是否使用了6,两者都使用了?)请使用
agentlib:jdwp
。我建议您就此查看这个答案


所有插件方法(-Xrunjdwp或-Xagentlib)都不适合我

因此,我放弃了对surefire插件使用-DforkMode=never运行测试,这确保了测试在进程内运行,并执行maven。然后我可以附加到进程


我在别处读到过,这是不安全的,因为调用的类路径可能与测试的类路径共享,但我找不到任何其他方法使我的场景工作。

谢谢。我也尝试过,但也有同样的问题。