17 lines
1.4 KiB
Markdown
17 lines
1.4 KiB
Markdown
# 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: `<module>/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`.
|