.github/scripts/compute-spotbugs-skip.sh injects <spotbugs.skip>true</spotbugs.skip> into unchanged modules' poms because SpotBugs applies its onlyAnalyze screener only after per-module setup and class parsing, making the flag ineffective for scoping a large reactor (measured ~17% goal-time trim vs ~88% for the per-module skip).
Upstream tracking issue for the missing early-exit: spotbugs/spotbugs#3796 (open, no implementation yet as of SpotBugs 4.10.2).
Once an upstream release checks onlyAnalyze against the module's class files before analysis setup, replace the injection script with a single -Dspotbugs.onlyAnalyze=<changed packages> flag and delete the script. Which modules get analyzed does not change either way — this is a maintainability simplification, not a behavior or wall-clock change.
🤖 Filed with Claude Code
.github/scripts/compute-spotbugs-skip.shinjects<spotbugs.skip>true</spotbugs.skip>into unchanged modules' poms because SpotBugs applies itsonlyAnalyzescreener only after per-module setup and class parsing, making the flag ineffective for scoping a large reactor (measured ~17% goal-time trim vs ~88% for the per-module skip).Upstream tracking issue for the missing early-exit: spotbugs/spotbugs#3796 (open, no implementation yet as of SpotBugs 4.10.2).
Once an upstream release checks
onlyAnalyzeagainst the module's class files before analysis setup, replace the injection script with a single-Dspotbugs.onlyAnalyze=<changed packages>flag and delete the script. Which modules get analyzed does not change either way — this is a maintainability simplification, not a behavior or wall-clock change.🤖 Filed with Claude Code