# LSN-0038: JaCoCo Reports Consolidation in Gradle - **Problem:** Múltiplos módulos Gradle gerando reports individuais de cobertura de código, dificultando a visão consolidada para o Jenkins. - **Decision:** Implementar o plugin JaCoCo via `buildSrc` para todos os subprojetos e criar uma task de agregação customizada no root project. - **Implementation:** - `buildSrc/src/main/kotlin/gradle.java-common-conventions.gradle.kts`: Aplicado o plugin `jacoco` e configurado o `jacocoTestReport` para rodar após o `test`. - `build.gradle.kts` (Root): Criada a task `jacocoTestReport` que agrega `executionData`, `sourceDirectories` e `classDirectories` de todos os subprojetos Java folha. - **Example:** - Rodar `./gradlew test jacocoTestReport` gera: - Reports individuais: `/build/reports/jacoco/test/html/index.html` - Report consolidado: `build/reports/jacoco/jacocoTestReport/html/index.html` - **Pitfalls:** - O plugin `jacoco-report-aggregation` nativo do Gradle pode ter problemas com estruturas de subprojetos aninhados que não possuem o plugin Java aplicado. A task customizada no root é mais robusta para este layout. - É importante filtrar apenas subprojetos "folha" (sem subprojetos próprios) que aplicam o plugin `java` para evitar erros de diretórios inexistentes. - **References:** - `DSC-0024`, `DEC-0024`, `PLN-0047`.