apache / apache/grails-core

Resolve existing PMD findings in grails-gradle-model

Open
#16,016 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Groovy
Stars
2.9k
Forks
975
Avg merge
1d 22h
Merged PRs (30d)
92

Description

## Summary

The independent `grails-gradle` build currently has 113 PMD findings, all in `grails-gradle-model`, after generated files below `build/` are excluded. The other analyzed Gradle-plugin subprojects currently have no PMD source task rather than a verified clean Java baseline.

## Reproduction

From `grails-gradle/`:

```shell
./gradlew aggregateAnalysisViolations --continue \
-Pgrails.code-analysis.enabled.pmd=true \
-Pgrails.code-analysis.ignoreFailures=true
```

The detailed XML report is written under `build/reports/code-analysis/pmd/`.

## Baseline

| Project | Findings |
|---------|---------:|
| `grails-gradle-model` | 113 |

## Suggested approach

Resolve the model findings in reviewable rule/category batches while preserving public Gradle model behavior. Once the report is clean, remove `ignoreFailures` from the `grails-gradle` code-analysis workflow and make PMD blocking for `:grails-gradle-model`.

## Acceptance criteria

- The `grails-gradle-model` PMD XML contains zero findings.
- The complete `grails-gradle` test suite passes.
- PMD runs without `grails.code-analysis.ignoreFailures=true` in `grails-gradle` CI.

Contributor guide

Open the contributing guide

Research direction

From grails-gradle/, run aggregateAnalysisViolations with PMD enabled and inspect the XML under build/reports/code-analysis/pmd/. Work through the 113 grails-gradle-model findings in reviewable batches while preserving public Gradle model behavior. Done means the PMD XML has zero findings, the complete grails-gradle test suite passes, and CI runs PMD without ignoreFailures.

Written by the indexing model from the issue text.

Assessment

Tech stack
groovy
Domain
build-system, ci-cd
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.