sonar pattern exclusions coverage java maven jacoco generated

java - pattern - sonarqube coverage configuration



Excluir carpeta en informe de cobertura jacoco (2)

Creo que eso no es posible porque sus clases compiladas están en el mismo directorio en destino. Y Jacoco necesita las clases compiladas y, por lo tanto, no se puede hacer un filtro en las fuentes.

Puede excluir clases en el informe Jacoco estableciendo una ruta de exclusión, pero los valores deben ser la ruta de las clases compiladas en relación con el directorio destino / clases /.

<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <configuration> <excludes> <exclude>**/*.class</exclude> </excludes> </configuration> </plugin>

La mejor solución sería generar las clases en un paquete específico. Pero tal vez no puedas.

En mi proyecto Java, he generado clases que están dentro de la misma carpeta de paquetes que las otras clases. Me gustaría configurar el complemento jacoco maven para excluir esas clases generadas y solo usar clases en la carpeta main / src / java (no src / main / java-generada)

Estructura del proyecto:
src / main / java / com / company / john / Good.java <---- esto incluye
src / main / java-generator / com / company / john / AutoGeneratedClass.java <---- esto excluye

<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.5.201505241946</version> <configuration> <includes> </includes> <excludes> <exclude>**/*Dto.*</exclude> </excludes> </configuration> <executions> <execution> <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>default-report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> <execution> <id>default-check</id> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin>

Sé que esa opción es agregar el prefijo a la clase generada, fi _ y usar esto para filtrar, pero me pregunto si hay otra opción. ¿Cómo especificar la carpeta de proyecto de origen (src / main / java) y, por lo tanto, excluir todas las demás carpetas? ¿El complemento se basa únicamente en los nombres de los paquetes?


Simplemente haciendo lo siguiente, resolví mi problema de ignorar un paquete en lugar de los archivos.

<configuration> <excludes> <exclude>**/basepkg/subpkg1/subpkg2/*</exclude> </excludes> </configuration>