I'm surprised by this as well. I was somewhat expecting Java 9 to tackle the dependency version problem.
But, had they included versioning support, they could have also built upon that later to support module distribution to finally not have to worry about maven, ivy, etc.
The main difficulty about versioning though are snapshot (development) versions that don't have a defined version number. In maven, typically these are just "*-SNAPSHOT" which may not be unique enough if two projects wanted to depend on two different snapshots of the same module.
If memory serves me correctly I remember Mark Reinhold saying to do it "right" they would have to run a linear equation solver like Eclipse/P2.
See also: http://wiki.osgi.org/w/images/thumb/e/e2/Classpath.jpg/500px...
Huh? That sounds like a lot of work reinventing the wheel. Could you give me some details on how that's arranged?
Every Java EE server (even Tomcat) sets up its own class loaders. So does Jenkins/Hudson, Maven, all RCP platforms, even applets. It's really rare to find applications where all the code is in the class path.