in jps-wrapper/src/main/java/org/jetbrains/jps/model/serialization/JpsProjectLoader.java [254:284]
private void loadModules(@Nullable Element componentElement,
@Nullable JpsSdkType<?> projectSdkType,
@NotNull Path workspaceFile,
@NotNull Executor executor) {
Runnable timingLog = TimingLog.startActivity("loading modules");
if (componentElement == null) {
return;
}
Set<String> unloadedModules = myLoadUnloadedModules
? Set.of()
: JpsProjectConfigurationLoading.readNamesOfUnloadedModules(workspaceFile, myComponentLoader);
final Set<Path> foundFiles = new HashSet<>();
final List<Path> moduleFiles = new ArrayList<>();
for (Element moduleElement : JDOMUtil.getChildren(componentElement.getChild(MODULES_TAG), MODULE_TAG)) {
final String path = moduleElement.getAttributeValue(FILE_PATH_ATTRIBUTE);
if (path != null) {
final Path file = Path.of(path);
if (foundFiles.add(file) && !unloadedModules.contains(getModuleName(file))) {
moduleFiles.add(file);
}
}
}
List<JpsModule> modules = loadModules(moduleFiles, projectSdkType, myPathVariables, myPathMapper, executor);
for (JpsModule module : modules) {
project.addModule(module);
}
timingLog.run();
}