According to the article: &quot;A module’s declaration does not include a version string, nor constraints upon the version strings of the modules upon which it depends. This is intentional: It is not a goal of the module system to solve the version-selection problem, which is best left to build tools and container applications.&quot;<p>I&#x27;m surprised by this as well. I was somewhat expecting Java 9 to tackle the dependency version problem.