in serverFacade/src/org/jetbrains/jps/server/Facade.java [44:91]
public void startBuild(String projectPath, Set<String> modules, final BuildParameters params, final MessageHandler msgHandler) throws Throwable{
Project project;
synchronized (myConfigurationLock) {
project = myProjects.get(projectPath);
if (project == null) {
project = loadProject(projectPath, params);
myProjects.put(projectPath, project);
}
}
final List<Module> toCompile = new ArrayList<Module>();
if (modules != null && modules.size() > 0) {
for (Module m : project.getModules().values()) {
if (modules.contains(m.getName())){
toCompile.add(m);
}
}
}
else {
toCompile.addAll(project.getModules().values());
}
final CompileScope compileScope = new CompileScope(project) {
public Collection<Module> getAffectedModules() {
return toCompile;
}
};
final IncProjectBuilder builder = new IncProjectBuilder(project, getProjectName(projectPath), BuilderRegistry.getInstance());
if (msgHandler != null) {
builder.addMessageHandler(msgHandler);
}
switch (params.buildType) {
case REBUILD:
builder.build(compileScope, false);
break;
case MAKE:
builder.build(compileScope, true);
break;
case CLEAN:
//todo[nik]
// new ProjectBuilder(new GantBinding(), project).clean();
break;
}
}