受https://stackoverflow.com/a/14853683/286795的启发,我试图使用mvnDebug和IntelliJ远程调试Maven项目。但是,执行不会在我的断点处停止。 重现一个简单的Hello World示例:
在本地计算机上:
git clone https://github.com/LableOrg/java-maven-junit-helloworld.git
cd java-maven-junit-helloworld
mvnDebug test
在远程计算机上:
打开Hello.java,在显示printer.println(HELLO);
运行->调试...->编辑配置...,添加新配置->远程
现在将运行测试,而不会在断点处停止。为什么?
答案 0 :(得分:2)
在运行mvnDebug
命令时,请使用-DforkMode=never
。
因此您的maven命令将如下所示:
mvnDebug -DforkMode=never -Dmaven.surefire.debug clean install
有关-DforkMode=never
的更多信息,请阅读here
答案 1 :(得分:0)
您需要将debugForkedMode
中的maven-surefire-plugin
设置为true
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<debugForkedProcess>true</debugForkedProcess>
</configuration>
</plugin>
然后在端口5005上添加另一个远程调试配置。