Java 无法使用调试器附加到正在运行的spring集成测试
我正在使用maven运行spring集成测试。我试图在启用调试端口的情况下运行它,以便可以从IntelliJ idea连接到它 下面的命令行过去常用于工作。它用于允许surefire启动初始化,然后等待连接到端口8000,然后再继续测试: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
-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。然后我可以附加到进程
我在别处读到过,这是不安全的,因为调用的类路径可能与测试的类路径共享,但我找不到任何其他方法使我的场景工作。谢谢。我也尝试过,但也有同样的问题。