Gradle:无法创建 SecurityManager

Inf*_*mat 5 java linux teamcity gradle

我目前正在尝试在 gradle 中为共享构建服务器运行一些测试。我收到以下错误:

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:102)
    at sun.misc.Launcher.<clinit>(Launcher.java:53)
    at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1451)
    at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1436)
Run Code Online (Sandbox Code Playgroud)

使用 --debug 运行的 JVM 命令行参数是:

-DisTestMode=true
-Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager                 
-DtestLocators
-javaagent:../expandedArchives/org.jacoco.agent-0.7.8.jar_cbks496gfbgpke4b5ek12xen8/jacocoagent.jar=destfile=../../jacoco/testSpringContext_cnt_dmabtec.exec,append=true,inclnolocationclasses=false,dumponexit=true,output=file,jmx=false
-Xms128m
-Dfile.encoding=US-ASCII
-Duser.country=US
-Duser.language=en
-Duser.variant
Run Code Online (Sandbox Code Playgroud)

我尝试在本地和服务器上运行不同版本的 gradle 进行比较:
本地 2.14.1 与服务器
上的2.14.1 本地4.10.1 与服务器上的 4.5.x

  • 在本地,无论 gradle 版本如何,它都将始终通过所有测试。
  • 在服务器上,当它尝试进行一项特定的测试时总是会失败。
  • 本地和服务器都具有相同的 JVM 参数。
  • 两者都使用 java JDK 8。
  • 如果在 gradle 任务之前删除工作目录中的 .gradle 目录,则结果相同
  • 无法使用 gradle-worker.jar 删除 /.gradle 目录,因为它是共享构建服务器(我没有权限)

有没有人对问题有什么想法?如果您需要更多信息,请询问,如果可以,我会提供。谢谢。

Anu*_*chi 14

当 ~/.gradle/daemon 文件夹在 MacOS/Unix 中损坏时会发生这种情况。强行删除守护程序文件夹为我解决了这个问题。

rm -rf ~/.gradle/daemon
Run Code Online (Sandbox Code Playgroud)


Vad*_*dim 1

 export GRAILS_OPTS='-Xmx4g'
Run Code Online (Sandbox Code Playgroud)

对我来说很有魅力