Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.7.0
-
None
-
None
-
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T03:58:13-04:00)
Maven home: C:\Program Files\apache-maven-3.5.2\bin\..
Java version: 9.0.1, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-9.0.1
Default locale: en_CA, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T03:58:13-04:00) Maven home: C:\Program Files\apache-maven-3.5.2\bin\.. Java version: 9.0.1, vendor: Oracle Corporation Java home: C:\Program Files\Java\jdk-9.0.1 Default locale: en_CA, platform encoding: Cp1252 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Description
Testcase: https://github.com/cowwoc/maven-java9-class-shadowing
If a project contains dependencies with the same module name (which is valid according to https://stackoverflow.com/a/46573805/14731) then maven-compile-plugin invokes javac with a modulepath containing dependencies in an (apparently) arbitrary order. If I place the project in one directory, I get one order. If I place the project in another directory, I get another order. This is 100% reproducible across multiple runs, across different computers.
I suspect that somewhere deep inside the code someone is using HashMap which is leading to undefined iteration order depending on the path being used.
Expected behavior: dependencies should be listed in the same order as declared in pom.xml (see https://stackoverflow.com/a/793193/14731)
Actual behavior: regardless of whether I list ExtensionPresent before or after MyLibrary, the wrong order gets passed to javac.
Attachments
Issue Links
- relates to
-
MNG-6357 Dependency order should be nearest first
- Reopened