我正在使用 Maven 运行 Spring 集成测试。我正在尝试在启用调试端口的情况下运行它,以便我可以从 IntelliJ idea 附加到它。
以下命令行过去曾起作用。它用于允许 Surefire 启动初始化,然后等待连接到端口 8000,然后再继续测试:
-Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE"-Dtest集成测试
然而,这现在给了我以下异常(exception):
[ERROR] No plugin found for prefix 'runjdwp' in the current project and in the plugin groups [com.zillow, org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/home/ferozed/.m2/repository-p4), nexus (http://repo.zillow.local/content/groups/public)] -> [Help 1] org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException: No plugin found for prefix 'runjdwp' in the current project and in the plugin groups [com.zillow, org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/home/ferozed/.m2/repository-p4), nexus (http://repo.zillow.local/content/groups/public)] at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve(DefaultPluginPrefixResolver.java:93) at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix(MojoDescriptorCreator.java:260) at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor(MojoDescriptorCreator.java:220) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:106) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:86) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:98) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
有什么想法可以让它发挥作用吗?
最佳答案
我记得以前处理过这个问题。您正在使用的调试选项在您的 Java 版本中可能已被弃用。 Java 5 及以下版本使用 -Xrunjdwp
。我相信 Java 7 及更高版本(不确定 6,两者都使用?)使用 agentlib:jdwp
。我建议查看 SO 上的这个答案。
关于java - 无法使用调试器附加到正在运行的 spring 集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35166082/