У меня есть проект scala (с несколькими java-файлами), построенный с использованием maven (scala-maven-plugin). У нас есть jacoco, подключенный для покрытия кода (jacoco-maven-plugin) и который генерирует хорошее кодирование кода scala. Мы можем видеть отчеты html/csv в типичном месте в/target, а охват scala - все и хорошо.Maven с Jacoco и Sonar 0% покрытие
Однако мы не можем получить покрытие кода с помощью сонара для работы с файлами scala. Плагин запускается, и он отправляет покрытие java, поэтому я знаю, что он что-то набирает с выхода jacoco, но охват scala отсутствует.
Кроме того, если я запустил jacoco: проверьте цель как часть сборки, она не работает в зоне покрытия, снова ссылаясь только на покрытие java как на общую цифру покрытия. Это заставляет меня думать, что проблема связана с тем, как я сконфигурировал jacoco не с помощью сонара.
Любая помощь приветствуется.
Вот соответствующие части ПОМ
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.1.3</version>
<configuration>
<args>
<arg>-g:vars</arg>
</args>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.6.2.201302030002</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- disable surefire -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.plugin.surefire.version}</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- enable scalatest -->
<plugin>
<groupId>org.scalatest</groupId>
<artifactId>scalatest-maven-plugin</artifactId>
<version>1.0-M2</version>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
<junitxml>.</junitxml>
<parallel>true</parallel>
<tagsToExclude>IntegrationTest</tagsToExclude>
<filereports>ScalaTestSuite.txt</filereports>
</configuration>
</execution>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
<junitxml>.</junitxml>
<parallel>true</parallel>
<tagsToInclude>IntegrationTest</tagsToInclude>
<filereports>ScalaIntegrationTestSuite.txt</filereports>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-maven3-plugin</artifactId>
<version>3.4.1</version>
</plugin>
<sonar.host.url>http://vltapp02:9000/</sonar.host.url>
<sonar.jdbc.url>jdbc:h2:tcp://vltapp02:9092/sonar</sonar.jdbc.url>
<sonar.language>java</sonar.language>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.jacoco.reportPath>target/jacoco.exec</sonar.jacoco.reportPath>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.surefire.reportsPath>target/surefire-reports</sonar.surefire.reportsPath>
Вы когда-нибудь находили решение? – RubberDuck
В конце я написал https://github.com/scoverage/sbt-scoverage – monkjack