Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EXPERIMENT] Delegate to Resolver for Artifact ordering #1212

Closed
wants to merge 2 commits into from

Conversation

cstamas
Copy link
Member

@cstamas cstamas commented Jul 27, 2023

Applies MRESOLVER-390 changes, and removes all sprinkled artifact ordering, delegates fully to Resolver.

If you do mvn -X package you can see for example that enforcer plugin classpath is built in pre-order way from tree:
https://gist.github.com/cstamas/d1cb11d96938cdb9e6da2b46eec449b6

Now, if do mvn -X package -Daether.system.resolveDependencies.visitor=levelOrder, then enforcer plugin classpath is built in level order:
https://gist.github.com/cstamas/6498cfb31afe74ded1471c02d982eee6

Note: to build, needs apache/maven-resolver#322


https://issues.apache.org/jira/browse/MRESOLVER-390
also related https://issues.apache.org/jira/browse/MNG-6357

Applies MRESOLVER-390 changes, and removes all sprinkled artifact
ordering, delegates fully to Resolver.

---

https://issues.apache.org/jira/browse/MRESOLVER-390
@cstamas cstamas self-assigned this Jul 27, 2023
@cstamas cstamas changed the title EXPERIMENT [EXPERIMENT] Delegate to Resolver for Artifact ordering Jul 27, 2023
KKH1198

This comment was marked as spam.

@cstamas cstamas closed this Dec 6, 2023
@cstamas cstamas deleted the MRESOLVER-390 branch December 6, 2023 16:10
cstamas added a commit that referenced this pull request Dec 7, 2023
Remove all ordering from Maven and delegate it to Resolver.

Supersedes #1212

This PR makes Maven completely rely on Resolver to order artifacts on classpath (before this PR it was several spots where explicit ordering was applied without ability to affect it). This PR makes now Maven completely rely on Resolver, never "sort" artifacts on it's own, but use resolver result, that in turn depends on session config.

Example invocation:
```
$ mvn -X package -Daether.system.dependencyVisitor=levelOrder
```

Would make Maven use "levelOrder".

Example of default (preOrder, as before) and new levelOlder (new in 2.0): notice how tree is same, but resulting artifact list (and hence, order on classpath) is different:
https://gist.github.com/cstamas/c88ca550006e53edad5b16973b54c349

The new resolver configuration is documented here:
https://maven.apache.org/resolver-archives/resolver-2.0.0-alpha-3/configuration.html
(property No 62)

---

https://issues.apache.org/jira/browse/MNG-7953
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants