gnodet opened a new pull request, #12662: URL: https://github.com/apache/maven/pull/12662
## Summary - Switch the default conflict resolver from `classic` (O(N²)) to `path` (O(N)) via `maven-user.properties` - The `PathConflictResolver` has been available since resolver 2.0.11 and produces the same resolution results as `ClassicConflictResolver` - Users can revert with `-Daether.conflictResolver.impl=classic` ## Benchmark Results Tested on a 4383-module generated reactor project (Apple M4 Pro, JDK 21): | Conflict Resolver | `mvn clean install -DskipTests` | Speedup | |---|---|---| | `classic` (current default) | **2:45** | baseline | | `path` | **1:45** | **36% faster** | The `ClassicConflictResolver.gatherConflictItems()` performs O(N×M) recursive DFS and accounts for **46.7% of total CPU** on large reactor builds (measured via JFR profiling). The `PathConflictResolver` replaces this with an O(N) parallel path tree algorithm. ## Test plan - [x] Verified build compiles - [x] Benchmarked on 4383-module project: 2:45 → 1:45 (36% reduction) - [ ] CI passes - [ ] Integration tests pass with `path` resolver 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
