Warning
This plugin is a Maven 4 plugin and requires Maven 4.x to run.
This release brings 67 fixes, improvements and maintenance updates accumulated since beta-2, including several significant additions for Maven 4 users:
- Fast clean is now the default (
maven.clean.fast=true): the plugin stages deletions in.mvn/target/.cleanbefore Maven's build start, dramatically reducing cold-build overhead on large projects. - New
purge-checkgoal detects and removes orphaned build directories left behind by renamed or removed modules. - Read-only file deletion is now configurable, and
<targetPath>directories are also cleaned up. - Under the hood: the background cleaner is now session-scoped (fixes races in multi-module builds), the Plexus dependency is replaced with
java.nio, and the IT scripts have been ported from BeanShell to Groovy.
Requires Maven 4.x.
🚀 New features and improvements
-
fix: MCLEAN-102, session-scoped BackgroundCleaner, batch retry for both fast and non-fast paths (fixes #281, #285) (#347) @gnodet
-
feat: make fast clean the default (maven.clean.fast=true) (#362) @gnodet
-
feat: use
.mvn/target/.cleanas default staging directory for fast clean (#358) @gnodet -
feat: add purge-check goal to detect and remove orphaned build directories (#356) @gnodet
-
Add IT for MCLEAN-104: clean lifecycle should not attempt dependency resolution (#105) @slawekjaranowski
-
Configuration parameter for deleting read-only files (#250) @desruisseaux
-
Replace Plexus dependency by more extensive usage of
java.nio(#243) @desruisseaux
🐛 Bug Fixes
-
fix: fall back to original path when toRealPath() fails (fixes #262) (#344) @gnodet
-
fix: clarify that failOnError has no effect in fast mode (fixes #352) (#355) @gnodet
-
fix: missing closing brace and javadoc opener in CleanerTest (#357) @gnodet
-
Delete also the directories specified in
<targetPath>(#276) @desruisseaux
📝 Documentation updates
- Convert the FAQ from FML to Markdown (#336) @slachiewicz
- Add AGENTS.md + SECURITY.md security-model pointer for scanner discoverability (#316) @potiuk
👻 Maintenance
- Remove redundant project.build.sourceEncoding from IT POMs (#349) @gnodet
- Port the IT scripts from BeanShell to Groovy (#341) @slachiewicz
- Migrate the site descriptor to the v2 model (#339) @slachiewicz
- Restore the document metadata dropped when the pages were ported (#335) @slachiewicz
- Port the site documentation from APT to Markdown (#333) @slachiewicz
- Pass siteMvn as a String so the site stage runs on Maven 4 (#331) @slachiewicz
- Build against Maven 4.0.0-rc-6 (#329) @slachiewicz
- Add AGENTS.md + SECURITY.md security-model pointer for scanner discoverability (#316) @potiuk
- Refactor the code of the background thread used in "fast delete" mode (#286) @desruisseaux
- Leverage Maven core methods in replacement of
PathSelectorclass andtargetPathresolution (#284) @desruisseaux - JUnit Jupiter best practices (#279) @slachiewicz
- Replace
Selectorby a modified copy of thePathSelectorclass of Maven core. (#266) @desruisseaux - feat: enable prevent branch protection rules (#268) @sparsick
- Update release-drafter, README and PR template after parent 44 (#247) @slawekjaranowski
- Minor cleaning: dependency,
@Override,Paths(#240) @desruisseaux - re-enable issue notifications (#232) @bmarwell
- Temporarily disable issue notifications for jira-to-github migration (#108) @bmarwell
- Remove unused constructor (#106) @elharo
- Clean up commented code (#103) @elharo
🔧 Build
- Keep Dependabot off SLF4J 2.x and Mockito 5 on the 3.x branch (#363) @slachiewicz
- Disable Jenkins build until Maven 4.0.0-rc-7 is installed on agents (#351) @gnodet
- Restore jenkins build (#248) @slawekjaranowski
📦 Dependency updates
- Bump org.mockito:mockito-core from 5.23.0 to 5.24.0 (#359) @dependabot[bot]
- Bump org.slf4j:slf4j-simple from 2.0.19 to 2.0.20 (#360) @dependabot[bot]
- Bump mavenVersion from 4.0.0-rc-6 to 4.0.0-rc-7 (#350) @dependabot[bot]
- Bump org.apache.maven.plugins:maven-plugins from 49 to 50 (#342) @dependabot[bot]
- Bump org.slf4j:slf4j-simple from 2.0.18 to 2.0.19 (#337) @dependabot[bot]
- Build against Maven 4.0.0-rc-6 (#329) @slachiewicz
- Upgrade plugin versions by inheriting the versions from the parent pom.xml (#326) @desruisseaux
- Bump apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml from 4 to 5 (#325) @dependabot[bot]
- Bump apache/maven-gh-actions-shared/.github/workflows/stale.yml from 4 to 5 (#319) @dependabot[bot]
- Bump apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml from 4 to 5 (#320) @dependabot[bot]
- Bump apache/maven-gh-actions-shared/.github/workflows/pr-automation.yml from 4 to 5 (#321) @dependabot[bot]
- Bump org.apache.maven.plugins:maven-plugins from 48 to 49 (#313) @dependabot[bot]
- Bump org.slf4j:slf4j-simple from 2.0.17 to 2.0.18 (#308) @dependabot[bot]
- Bump org.apache.maven.plugins:maven-plugins from 47 to 48 (#306) @dependabot[bot]
- Bump org.mockito:mockito-core from 5.21.0 to 5.23.0 (#303) @dependabot[bot]
- Bump org.apache.maven.plugins:maven-plugins from 46 to 47 (#294) @dependabot[bot]
- Bump org.apache.maven.plugins:maven-plugins from 45 to 46 (#291) @dependabot[bot]
- Bump org.mockito:mockito-core from 5.20.0 to 5.21.0 (#288) @dependabot[bot]
- Upgrade from Maven 4.0.0-rc-4 to 4.0.0-rc-5. (#283) @desruisseaux
- Bump org.mockito:mockito-core from 5.19.0 to 5.20.0 (#271) @dependabot[bot]
- Bump org.mockito:mockito-core from 5.18.0 to 5.19.0 (#269) @dependabot[bot]
- Upgrade Maven core dependency to 4.0.0-rc-4. (#265) @desruisseaux
- Bump org.apache.maven.plugins:maven-plugins from 44 to 45 (#260) @dependabot[bot]
- Bump org.mockito:mockito-core from 5.17.0 to 5.18.0 (#253) @dependabot[bot]
- Bump org.mockito:mockito-core from 5.16.1 to 5.17.0 (#245) @dependabot[bot]
- Bump mavenVersion from 4.0.0-rc-2 to 4.0.0-rc-3 (#234) @dependabot[bot]
- Bump org.apache.maven.plugins:maven-plugins from 43 to 44 (#236) @dependabot[bot]
- Bump com.google.guava:guava from 33.4.0-jre to 33.4.6-jre (#239) @dependabot[bot]
- Bump org.mockito:mockito-core from 5.16.0 to 5.16.1 (#235) @dependabot[bot]
- Bump org.slf4j:slf4j-simple from 2.0.16 to 2.0.17 (#107) @dependabot[bot]
- Bump org.mockito:mockito-core from 5.15.2 to 5.16.0 (#233) @dependabot[bot]