jacocoagent.jar在gradle'clean build'阶段丢失

时间:2019-09-27 06:02:30

标签: java gradle intellij-idea jacoco

我遇到了gradle和jacoco的问题,其中gradle clean build失败,任务期间jacocoagent.jarcompileTestJava丢失了Test

在检查问题时,我发现如果删除 .gradle 下的 build 文件夹并运行-gradle buildgradle test命令,再次创建 build 文件夹,并在' / build / tmp / expandedArchives / '位置下创建代码覆盖所需的 jacocoagent.jar

但是,如果我运行gradle clean buildgradle clean test,则' build '文件夹将被删除并重新创建,但是' expandedArchives '文件夹位于' / build / tmp '的位置未创建,因此测试失败并显示以下错误-

  

打开zip文件或JAR清单文件时出错,缺少以下内容:build / tmp / expandedArchives / org.jacoco.agent-0.8.4.jar_7bfc4fd986d61dbf92065775ff3714a0 / jacocoagent.jar

这是complieTestJava和Test任务的完整堆栈跟踪:

> Task :compileTestJava
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Could not write standard input to Gradle Test Executor 2.
java.io.IOException: The pipe is being closed
        at java.io.FileOutputStream.writeBytes(Native Method)
        at java.io.FileOutputStream.write(FileOutputStream.java:326)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        at org.gradle.process.internal.streams.ExecOutputHandleRunner.forwardContent(ExecOutputHandleRunner.java:66)
        at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:51)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)

> Task :test
Error occurred during initialization of VM
agent library failed to init: instrument
Error opening zip file or JAR manifest missing : build/tmp/expandedArchives/org.jacoco.agent-0.8.4.jar_7bfc4fd986d61dbf92065775ff3714a0/jacocoagent.jar
Error occurred during initialization of VM
agent library failed to init: instrument
Error opening zip file or JAR manifest missing : build/tmp/expandedArchives/org.jacoco.agent-0.8.4.jar_7bfc4fd986d61dbf92065775ff3714a0/jacocoagent.jar

Could not write standard input to Gradle Test Executor 3.
java.io.IOException: The pipe is being closed
        at java.io.FileOutputStream.writeBytes(Native Method)
        at java.io.FileOutputStream.write(FileOutputStream.java:326)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        at org.gradle.process.internal.streams.ExecOutputHandleRunner.forwardContent(ExecOutputHandleRunner.java:66)
        at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:51)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)

有人领导这里可能出什么问题吗?

以下是我的构建环境的详细信息:

  
      
  • 成绩-5.6.2
  •   
  • Jacoco-0.8.4
  •   
  • Java-1.8.0.181
  •   
  • IntelliJ-2019.2.3(最终版)
  •   
  • 操作系统-Windows 7 Enterprise
  •   

构建脚本

我无法在此处添加整个构建脚本,但以下是与jacoco相关的任务:

jacoco {
    toolVersion = "0.8.4"
}
test {
    exclude "features/**"
    exclude "**/*IntegrationTests*"
}
jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination file("${buildDir}/jacocoHtml")
    }
}

jacocoTestCoverageVerification {
    violationRules {
        rule {
            limit {
                counter = 'LINE'
                value = 'COVEREDRATIO'
                minimum = 0.75
            }
        }
    }
}

jacocoTestCoverageVerification.mustRunAfter jacocoTestReport

test.finalizedBy jacocoTestReport

0 个答案:

没有答案