启动gradle时使用了一个测试,测试中没有daemon参数,但无论如何都会启动daemon

启动gradle时使用了一个测试,测试中没有daemon参数,但无论如何都会启动daemon,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我试图调试我编写的一些单元测试,但gradle守护进程似乎总是启动,忽略了我设置的任何选项 使用Mac OS X 10.9.5、Java 1.7、Gradle 2.2.1和robolectric Gradle插件0.14.1 通过以下方式启动gradle: GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006" ./gradlew test --no-daemon -Dorg.

我试图调试我编写的一些单元测试,但gradle守护进程似乎总是启动,忽略了我设置的任何选项

使用Mac OS X 10.9.5、Java 1.7、Gradle 2.2.1和robolectric Gradle插件0.14.1

通过以下方式启动gradle:

GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"    
./gradlew test --no-daemon -Dorg.gradle.debug=true
导致出现以下行

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/docs/2.2.1/userguid....
我还尝试在build.gradle中将-Xdebug和Xrunjdwp设置为jvmArgs

除了添加-d并重新运行外,不会发生任何其他情况,结果表明守护进程已启动,并且正在端口5005上等待调试器:

最后,如果我随后启动一个附加到端口5005的调试器,那么测试将运行,但不会命中任何断点


gradle.properties为空,我没有设置org.gradle.jvmargs。

您的gradle.properties中可能有配置内存设置?这些可能会迫使gradle启动新的jvm,因为这些设置无法动态应用

请记住,单元测试总是在单独的jvm中执行。调试gradle执行的测试的最简单方法是运行

>gradle :test --debug-jvm

这将自动将测试任务配置为在启用调试的情况下运行。

我正在尝试将调试器附加到测试进程--debug只是打开gradle的调试日志。对不起,我搞错了一些东西。它是--debug jvm,而不是--debug。更新了我的答案。很抱歉搞混了。在我的例子中,~/.gradle/gradle.properties(注意主目录)中有“org.gradle.jvmargs=-Xmx2048M”。删除它可以防止gradle分叉jvm。