使用Gradle构建时出现问题

3

该项目的gradle构建在短时间内一直正常工作,但现在始终失败并显示以下错误(使用--info标志输出):

Starting process 'Gradle Test Executor 1'. Working directory: /home/abc/git/xyz Command: /usr/lib/jvm/java-8-oracle/bin/java -Djava.security.manager=jarjar.org.gradle.process.internal.child.BootstrapSecurityManager -DsysProp=value -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -ea -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -cp /home/abc/git/xyz/$PATH:/opt/abc/gradle-2.9/caches/2.9/workerMain/gradle-worker.jar jarjar.org.gradle.process.internal.launcher.GradleWorkerMain 'Gradle Test Executor 1'
Successfully started process 'Gradle Test Executor 1'
Error occurred during initialization of VM
java.lang.InternalError: Could not create SecurityManager: jarjar.org.gradle.process.internal.child.BootstrapSecurityManager
    at sun.misc.Launcher.<init>(Launcher.java:106)
    at sun.misc.Launcher.<clinit>(Launcher.java:57)
    at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1448)
    at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1433)

Starting process 'Gradle Test Executor 2'. Working directory: /home/abc/git/xyz Command: /usr/lib/jvm/java-8-oracle/bin/java -Djava.security.manager=jarjar.org.gradle.process.internal.child.BootstrapSecurityManager -DsysProp=value -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -ea -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -cp /home/abc/git/xyz/$PATH:/opt/abc/gradle-2.9/caches/2.9/workerMain/gradle-worker.jar jarjar.org.gradle.process.internal.launcher.GradleWorkerMain 'Gradle Test Executor 2'
Successfully started process 'Gradle Test Executor 2'
Error occurred during initialization of VM
java.lang.InternalError: Could not create SecurityManager: jarjar.org.gradle.process.internal.child.BootstrapSecurityManager
    at sun.misc.Launcher.<init>(Launcher.java:106)
    at sun.misc.Launcher.<clinit>(Launcher.java:57)
    at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1448)
    at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1433)

Process 'Gradle Test Executor 2' finished with non-zero exit value 1
org.gradle.process.internal.ExecException: Process 'Gradle Test Executor 2' finished with non-zero exit value 1
    at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
    at org.gradle.process.internal.DefaultWorkerProcess.onProcessStop(DefaultWorkerProcess.java:91)
    at org.gradle.process.internal.DefaultWorkerProcess.access$000(DefaultWorkerProcess.java:35)
    at org.gradle.process.internal.DefaultWorkerProcess$1.executionFinished(DefaultWorkerProcess.java:57)
    at sun.reflect.GeneratedMethodAccessor302.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
    at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
    at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
    at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    at com.sun.proxy.$Proxy50.executionFinished(Unknown Source)
    at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:214)
    at org.gradle.process.internal.DefaultExecHandle.finished(DefaultExecHandle.java:312)
    at org.gradle.process.internal.ExecHandleRunner.completed(ExecHandleRunner.java:103)
    at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:83)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

有什么想法是什么导致了这个问题,以及如何最好地解决它?

运行构建时跳过测试(gradle build -x test 至少可以让构建过程正常工作) - ali haider
你是否为测试任务设置了任何JVM参数?可能是类似于这个问题:https://discuss.gradle.org/t/java-lang-internalerror-could-not-create-securitymanager-jarjar-org-gradle-process-internal-child-bootstrapsecuritymanager/2478/3 - tomasulo
我在发布之前已经删除了JVM参数 - 那不是问题的原因。一旦我能够确定问题的原因,我会在这里更新。 - ali haider
5个回答

8

如果其他人也遇到了这个问题,我解决方法如下:

rm -rf ~/.gradle
rm -rf YOUR_PROJECT/.gradle

我先尝试了只运行rm -rf ~/.gradle/caches,但这并不够。

1
唯一需要提到的是,如果您有~/.gradle/gradle.properties文件,请勿删除它。 - Vadim
运行得非常好,我只是删除了~/.gradle/caches文件夹。删除更多的Gradle解决了这个问题。 - rtn

3
在执行任务之前,尝试运行"gradle --stop"命令。

gradle --stop


1
在删除gradle缓存文件夹后,问题得到了解决。 移除.gradle/caches文件夹并尝试。

给标记者:这是一个答案。仅删除缓存文件夹并不属于其他任何答案,因此它独立成为一个答案。 - Robert Columbia

1

我遇到了类似的错误 -

Error occurred during initialization of VM java.lang.InternalError: Could not create SecurityManager: worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager         at sun.misc.Launcher.<init>(Launcher.java:103)

这个GitHub问题#4689中提到的建议对我有所帮助-

  1. 删除Gradle缓存 <HOME>/.gradle/caches
  2. 停止Gradle守护进程 ./gradlew --stop
  3. 现在重新构建项目./gradlew build

0
问题源于单元测试(飞行员错误)。当我使用跳过测试的构建时,构建过程正常工作。显然,为了解决这个问题,需要修复单元测试(而不是使用跳过测试的权宜之计)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接