我在gradle中运行测试时遇到了问题。我知道在其他机器上我的gradle配置可以正常工作但不幸的是在我的机器上。我们有junit test和testNG,当他们尝试执行时,他们都会产生这样的堆栈跟踪:
Could not write standard input into: Gradle Worker 1.
java.io.IOException: The pipe is being closed
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:318)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:53)
at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
其中不断产生此错误的数字不同(Gradle Worker 2,Gradle Worker 3等)。有没有人遇到类似的问题?
我正在使用gradle 1.6。
编辑:我忘了告诉我正在使用gradle wrapper编辑:更改为版本1.12后,我收到错误:
Caused by: org.gradle.api.InvalidUserDataException: Could not create task '(custome taks name)': Unknown argument(s) in task definition: [mustRunAfter]
11:20:17.990 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.TaskFactory.validateArgs(TaskFactory.java:147)
11:20:17.991 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.TaskFactory.checkTaskArgsAndCreateDefaultValues(TaskFactory.java:134)
11:20:17.991 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.TaskFactory.createTask(TaskFactory.java:72)
编辑:好的我想我找到了导致这个问题的原因 - 它是Antivirus 。当我禁用它时,脚本向前移动了一点但是以:结束
org.gradle.messaging.remote.internal.ConnectException: Could not connect to server [e42b57ea-ced6-4bb6-9369-3186ab4983d6 port:63631, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]]. Tried addresses: [/127.0.0.1, /0:0:0:0:0:0:0:1].
at org.gradle.messaging.remote.internal.inet.TcpOutgoingConnector.connect(TcpOutgoingConnector.java:62)
at org.gradle.messaging.remote.internal.hub.MessageHubBackedClient.getConnection(MessageHubBackedClient.java:35)
at org.gradle.process.internal.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:54)
at org.gradle.process.internal.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:35)
at org.gradle.process.internal.child.ImplementationClassLoaderWorker.execute(ImplementationClassLoaderWorker.java:85)
at org.gradle.process.internal.child.ImplementationClassLoaderWorker.execute(ImplementationClassLoaderWorker.java:41)
at org.gradle.process.internal.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:43)
at org.gradle.process.internal.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:32)
at org.gradle.process.internal.launcher.BootstrapClassLoaderWorker.call(BootstrapClassLoaderWorker.java:46)
at org.gradle.process.internal.launcher.BootstrapClassLoaderWorker.call(BootstrapClassLoaderWorker.java:32)
at jarjar.org.gradle.process.internal.launcher.GradleWorkerMain.run(GradleWorkerMain.java:32)
at jarjar.org.gradle.process.internal.launcher.GradleWorkerMain.main(GradleWorkerMain.java:37)
Caused by: java.net.ConnectException: Connection refused: connect
使用谷歌搜索此错误不会给我任何东西(只有一些旧的gradle 1.1错误信息)。有人遇到过这种问题吗?
答案 0 :(得分:6)
哇,经过一整天的挣扎,我想我终于找到了导致问题的原因。有罪的是防病毒软件 - COMODO。卸载它并安装另一个后,一切都开始正常工作。所有Gradle用户 - 请注意COMODO,因为即使已禁用,也可能在使用Gradle时出现问题。请注意:)
答案 1 :(得分:5)
在运行测试类时,我遇到了类似的问题。我可以构建项目,但无法运行,因此在进行一些研究之后,我找到了一种解决方案,即从.gradle / cache文件夹中删除一些workerThread-jar。我尝试了,对我有用。您可以使用以下命令来解决此问题。
gradle test --info
命令作为回应,我收到了日志,在其中搜索
Gradle worker Daemon
键,获取我的gradle-worker.jar的位置。通常,在Windows中,您可以在以下位置C:\ Users \ .gradle \ caches \\ workerMain \ gradle-worker.jar下找到它。
要解决此问题,一种方法是删除workerMain文件夹本身,然后运行测试类。
答案 2 :(得分:0)
我遇到了同样的错误,只是说Gradle Worker2。我重新启动了命令行(powershell),然后尝试再次使用gradle进行构建,并且该命令可以正常工作。我已经更改了环境变量,以指向该项目所期望的Java版本,并且没有想到要重新启动-不确定是否与此有关。
答案 3 :(得分:0)
您确实不需要禁用或删除COMODO Antivirus。只需执行以下步骤: