多模块maven:测试覆盖jacoco声纳
我有一个基本的maven多模块,父模块是POM,子模块有三个:域、服务和web 我在pom父级中添加了jacoco插件和所需配置,以便将测试覆盖率报告附加到sonar轻松定位的单个文件中多模块maven:测试覆盖jacoco声纳,maven,jenkins,sonarqube,jacoco,Maven,Jenkins,Sonarqube,Jacoco,我有一个基本的maven多模块,父模块是POM,子模块有三个:域、服务和web 我在pom父级中添加了jacoco插件和所需配置,以便将测试覆盖率报告附加到sonar轻松定位的单个文件中 <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.6.2.201302030002</version>
<configuration>
<destFile>${project.basedir}/../target/jacoco.exec</destFile>
<append>true</append>
</configuration>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
org.jacoco
jacocomaven插件
0.6.2.201302030002
${project.basedir}/./target/jacoco.exec
真的
jacoco初始化
配制剂
我的问题是Sonar只显示第一个模块(域)的测试覆盖率(即使我用编辑器打开文件,看到其他模块的类名被附加在其中)
此配置中可能出现什么错误
值得一提的是,sonar analysis是从Jenkins而不是从mvn sonar调用的:sonar您可以在这里查看我们的示例应用程序:
您应该能够找到您的配置有什么问题。Jenkins配置是关键:当配置正确时,无需将所有内容追加到单个文件中 我在配置中添加了以下内容:
sonar.modules=xxx-domain,xxx-service,xxx-web
我删除了问题中给出的pom.xml中的配置标记
它很有魅力
对于那些难以解决此问题的人,请寻找任何有用的方法来指定sonar的jenkins项目配置为什么要将jacoco maven插件添加到POM?sonar不需要任何附加插件。它可以在没有任何附加插件的情况下与现有POM配合使用modifications@orionll我添加了插件,特别是配置,以便将每个in模块的jacoco.exec文件附加到父forlder中的单个模块中。提供的示例不适用于maven中的多个模块。另外,我指定我是从jenkins运行sonar,而不是从mvn sonar运行sonar:sonar好吧,我们正在使用sonar jenkins插件分析jenkins服务器上的sonar代码,我们没有指定任何特殊内容POMs中的l。它使用与我给你的示例相同的配置。因此,这应该可以解决,如果你的盒子没有需要像你那样配置JaCoCo Maven插件=>无需将所有JaCoCo.exec文件附加到一个文件中。确切地说,Jenkins中的配置是关键。我添加了下面的解决方案,以便每个人都可以阅读它这意味着你在用自由式作业来分析你的项目,而不是用声纳后构建动作来分析Maven作业??如果是这样,你能解释一下原因吗?@Fabrice SonarTeam配置如下:Jenkins通过构建Maven模块来进行持续集成。我不想让我的模块知道任何有关声纳的信息。