jacocoTestReport failed on the second run

I got a very wired jacocoTestReport error, I have a ‘deploy’ gradle task, which simply copy the war file(from bootWar) and other config file to a directory, and in the bootWar task I set it up dependsOn test(which finalizedBy jacocoTestReport). Everything runs fine for the first run, such as:
./gradlew clean deploy; //finish ok.
but for some reason, if I run ./gradlew deploy again(with or without changing any codes), jacocoTestReport would fail(and below is the error if turn on --debug)–>

[DEBUG] [org.gradle.api.internal.tasks.execution.TaskExecution] Executing actions for task ‘:jacocoTestReport’.
[DEBUG] [org.codehaus.groovy.vmplugin.VMPluginFactory] Trying to create VM plugin org.codehaus.groovy.vmplugin.v9.Java9 by checking java.lang.Module, but failed:
java.lang.ClassNotFoundException: java.lang.Module
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.codehaus.groovy.vmplugin.VMPluginFactory.lambda$createPlugin$0(VMPluginFactory.java:61)
at java.security.AccessController.doPrivileged(Native Method)
at org.codehaus.groovy.vmplugin.VMPluginFactory.createPlugin(VMPluginFactory.java:58)
at org.codehaus.groovy.vmplugin.VMPluginFactory.(VMPluginFactory.java:45)
at org.codehaus.groovy.reflection.ReflectionUtils.(ReflectionUtils.java:47)
at org.codehaus.groovy.reflection.CachedClass$3.lambda$initValue$1(CachedClass.java:90)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)

For the error above there is no much help where I should look at…

PS. it will fail for the same reason even I run the ‘deploy’ task again … it only works again would be another “./gradlew clean” then ‘deploy’.

Can some one shield some light on this?

Thanks