You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by ma...@barclays.com.INVALID on 2023/07/26 16:35:12 UTC

maven class path order documentation

In the release notes for Maven 2.0.9:
http://people.apache.org/~jvanzyl/maven-3.1.1/docs/2.0.9/release-notes.html
It says: "introduced deterministic ordering of dependencies on the classpath. In the past, natural set ordering was used and this lead to odd results. The ordering is now preserved from your pom, with dependencies added by inheritance added last"
Is this info still current?  Is it documented anywhere aside from this release note?  If not, perhaps it should be?  And more details would be nice too.  For instance:

*         Suppose my module M has parent P and grandparent G.   Also, M depends on A and B, in that order.  Further, suppose A depends on X, which in turn depends on Y.  Meanwhile, B depends on Z.

Based on the sentence above, both of these are plausible orders:

a.    M, A, B, X, Z, Y, P, G

b.    M, A, X, Y, B, Z, P, G

c.     Maybe others too?

*         How does this relate to the dependency "mediation" algorithm maven uses when there are conflicting versions of a dependency requested?

As far as I understand, that uses a breadth-first search, where the parent pom comes FIRST rather than last.

Does that mean that mediation algorithm is basically unrelated to class path algorithm, or do they still have some things in common?

E.g., ordering (a) above is also a breadth-first search, whereas (b) is depth-first.
Any words of wisdom would be nice.

Thanks,
Mark.

This message is for information purposes only. It is not a recommendation, advice, offer or solicitation to buy or sell a product or service, nor an official confirmation of any transaction. It is directed at persons who are professionals and is intended for the recipient(s) only. It is not directed at retail customers. This message is subject to the terms at: https://www.cib.barclays/disclosures/web-and-email-disclaimer.html. 

For important disclosures, please see: https://www.cib.barclays/disclosures/sales-and-trading-disclaimer.html regarding marketing commentary from Barclays Sales and/or Trading desks, who are active market participants; https://www.cib.barclays/disclosures/barclays-global-markets-disclosures.html regarding our standard terms for Barclays Corporate and Investment Bank where we trade with you in principal-to-principal wholesale markets transactions; and in respect to Barclays Research, including disclosures relating to specific issuers, see: http://publicresearch.barclays.com.
__________________________________________________________________________________ 
If you are incorporated or operating in Australia, read these important disclosures: https://www.cib.barclays/disclosures/important-disclosures-asia-pacific.html.
__________________________________________________________________________________
For more details about how we use personal information, see our privacy notice: https://www.cib.barclays/disclosures/personal-information-use.html. 
__________________________________________________________________________________