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]

Reply via email to