Here are the high-level steps that the platform runs through when it resolves modules:
- Add the root module to the resolved set of modules. Remember that when you execute your code, you specify the type containing the main method and the module it belongs to. This module is the root module and forms the starting point for the module resolution process. Note that this starting point doesn't have to be just one module--there could be several modules, as we'll see shortly.
- Identify all the requires dependencies of the module(s) added. Here, each module's descriptor file is looked up to identify all the modules that it reads. This includes both requires and requires transitive.
- From the list from step 2, remove all modules ...