in model/src/org/jetbrains/jps/idea/IdeaProjectLoader.groovy [111:162]
def loadFromDirectoryBased(File dir) {
projectMacroExpander = new ProjectMacroExpander(pathVariables, dir.parentFile.absolutePath)
def modulesXml = new File(dir, "modules.xml")
if (!modulesXml.exists()) errorReporter.error("Cannot find modules.xml in $dir")
def miscXml = new File(dir, "misc.xml")
if (!miscXml.exists()) errorReporter.error("Cannot find misc.xml in $dir")
loadProjectJdkAndOutput(new XmlParser(false, false).parse(miscXml))
def encodingsXml = new File(dir, "encodings.xml")
if (encodingsXml.exists()) {
loadProjectFileEncodings(new XmlParser(false, false).parse(encodingsXml))
}
def compilerXml = new File(dir, "compiler.xml")
if (compilerXml.exists()) {
loadCompilerConfiguration(new XmlParser(false, false).parse(compilerXml))
}
Node modulesXmlRoot = new XmlParser(false, false).parse(modulesXml)
loadModules(modulesXmlRoot.component[0])
def librariesFolder = new File(dir, "libraries")
if (librariesFolder.isDirectory()) {
librariesFolder.eachFile {File file ->
if (file.isFile()) {
Node librariesComponent = new XmlParser(false, false).parse(file)
loadProjectLibraries(librariesComponent)
}
}
}
def artifactsFolder = new File(dir, "artifacts")
if (artifactsFolder.isDirectory()) {
artifactsFolder.eachFile {File file ->
if (file.isFile()) {
def artifactsComponent = new XmlParser(false, false).parse(file)
loadArtifacts(artifactsComponent)
}
}
}
def runConfFolder = new File(dir, "runConfigurations")
if (runConfFolder.isDirectory()) {
runConfFolder.eachFile {File file ->
if (file.isFile()) {
def runConfManager = new XmlParser(false, false).parse(file);
loadRunConfigurations(runConfManager);
}
}
}
}