我遇到了gradle和jacoco的问题,其中gradle clean build
失败,任务期间jacocoagent.jar
和compileTestJava
丢失了Test
。
在检查问题时,我发现如果删除 .gradle 下的 build 文件夹并运行-gradle build
或gradle test
命令,再次创建 build 文件夹,并在' / build / tmp / expandedArchives / '位置下创建代码覆盖所需的 jacocoagent.jar 。
但是,如果我运行gradle clean build
或gradle 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