Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多模块项目中声纳覆盖率始终为0_Java_Maven_Sonarqube_Jacoco - Fatal编程技术网

Java 多模块项目中声纳覆盖率始终为0

Java 多模块项目中声纳覆盖率始终为0,java,maven,sonarqube,jacoco,Java,Maven,Sonarqube,Jacoco,我正在开发一个多模块maven项目,其结构如下: Parent |----Client |----Server |----End2End 服务器是一个spring引导应用程序,它产生一个REST接口。客户机是一个使用REST接口的简单swing应用程序,End2End是一个包含一些端到端测试(客户机/服务器)的模块。进入真正的问题,这是我在父pom中的属性: <properties> <project.build.sourceEncoding>

我正在开发一个多模块maven项目,其结构如下:

Parent
   |----Client 
   |----Server
   |----End2End
服务器是一个spring引导应用程序,它产生一个REST接口。客户机是一个使用REST接口的简单swing应用程序,End2End是一个包含一些端到端测试(客户机/服务器)的模块。进入真正的问题,这是我在父pom中的属性:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <jacoco.data.file>${project.build.directory}/jacoco.exec</jacoco.data.file>
    <jacoco.report.path>${project.reporting.outputDirectory}</jacoco.report.path>
    <sonar.language>java</sonar.language>
    <sonar.jacoco.reportPaths>${project.reporting.outputDirectory}</sonar.jacoco.reportPaths>
</properties>
我的全部代码覆盖率在工作服上正确报告。 但当我启动时:

mvn clean verify sonar:sonar
分析是有效的,但代码覆盖率始终保持在0%。我肯定我把报告路径弄错了,jacoco报告在parent/target/jacoco.exec中。有人能帮我吗

${project.reporting.outputDirectory}

指定目录,而根据应该指定exec文件,这是一个问题,对吧。现在我有:${project.build.directory}/coveragereports/jacoco.exec${project.reporting.outputDirectory}/jacoco.xml java${jacoco.data.file},但覆盖率仍然是0%。我将启动一个本地构建,以查看jacoco.data.file是否指向jacoco exec文件的正确路径。谢谢你!问题是sonar.jacoco.reportPath指向错误的路径,但jacoco.data.file也有错误(exec文件位于project.build.directory中,而不是在project.build.directory/coveragereports/中,正如它以前在pom中编写的那样),再次感谢您!
mvn clean verify coveralls:report
mvn clean verify sonar:sonar
<sonar.jacoco.reportPaths>${project.reporting.outputDirectory}</sonar.jacoco.reportPaths>