Presta atención ya que en esta sección hallarás la solución que buscas.
Solución:
Te faltaban algunas propiedades importantes de la sonda. Aquí tienes una muestra de una de mis compilaciones:
sonar.jdbc.dialect=mssql
sonar.projectKey=projectname
sonar.projectName=Project Name
sonar.projectVersion=1.0
sonar.sources=src
sonar.language=java
sonar.binaries=build/classes
sonar.tests=junit
sonar.dynamicAnalysis=reuseReports
sonar.junit.reportsPath=build/test-reports
sonar.java.coveragePlugin=jacoco
sonar.jacoco.reportPath=build/test-reports/jacoco.exec
El error en la salida de la consola de Jenkins puede ser bastante útil para que la cobertura del código funcione.
La cobertura del proyecto se establece en 0% ya que no hay directorios con clases.
Indica que no ha configurado correctamente la propiedad Sonar.Binaries
No hay información sobre la cobertura por prueba.
Indica que no ha configurado correctamente la propiedad Sonar.Tests
No se recopiló información de cobertura. ¿Quizás olvidó incluir información de depuración en clases compiladas? Indica que la propiedad sonar.binaries se configuró correctamente, pero esos archivos no se compilaron en modo de depuración y deben ser
Basado en https://github.com/SonarSource/sonar-examples/blob/master/projects/tycho/pom.xml, el siguiente POM funciona para mí:
jacoco
reuseReports
$project.basedir/../target/jacoco.exec
org.jacoco
jacoco-maven-plugin
0.7.0.201403182114
prepare-agent
$sonar.jacoco.reportPath
- La configuración del archivo de destino en la ruta del informe garantiza que Sonar lea exactamente el archivo que genera JaCoCo.
- La ruta del informe debe estar fuera de los directorios de los proyectos para tener en cuenta la cobertura entre proyectos (por ejemplo, en el caso de Tycho, donde la convención es tener proyectos separados para las pruebas).
- los
reuseReports
¡La configuración evita la eliminación del archivo de informe de JaCoCo antes de que se lea! (Desde 4.3, este es el valor predeterminado y está en desuso).
Entonces solo corro
mvn clean install
mvn sonar:sonar
Tuve un problema similar, 0.0% de cobertura y ninguna prueba unitaria cuenta en el panel de Sonar con SonarQube 6.7.2: Maven: 3.5.2, Java: 1.8, Jacoco: Trabajó con 7.0 / 7.9 / 8.0, OS: Windows
Después de mucha lucha para encontrar la solución correcta en el proyecto de múltiples módulos de maven, no como el proyecto de módulo único aquí, debemos decir que elija los informes de jacoco de los módulos individuales y se fusionen en un informe, así que resolvió el problema con esta configuración como mi pom principal se ve igual que:
jacoco
reuseReports
$project.basedir/../target/jacoco.exec
java
org.apache.maven.plugins
maven-compiler-plugin
1.5
org.sonarsource.scanner.maven
sonar-maven-plugin
3.4.0.905
org.jacoco
jacoco-maven-plugin
0.7.9
$sonar.jacoco.reportPath
true
agent
prepare-agent
He probado algunas otras opciones como jacoco-agregado e incluso creando un submódulo al incluirlo en el pom principal, pero nada realmente funcionó y esto es simple. Veo en los registros
está en desuso, pero aún funciona como está y parece que se reemplaza automáticamente en la ejecución o se puede actualizar manualmente para
o más reciente. Una vez después de realizar la configuración en cmd, comience con instalación limpia de mvn luego mvn org.jacoco: jacoco-maven-plugin: prepare-agent install (Verifique en la carpeta de destino del proyecto si se creó jacoco.exec) y luego haga mvn sonar: sonar , esto es lo que he probado, por favor avíseme si hay alguna otra mejor solución posible disponible. ¡Espero que esto ayude! Si no es así, envíe su pregunta.
Acuérdate de que tienes la opción de comentar si te fue preciso.