in src/org/jetbrains/jps/builders/StandardBuilders.groovy [243:280]
def processModule(ModuleBuildState state, ModuleChunk moduleChunk, ProjectBuilder projectBuilder) {
if (!GroovyFileSearcher.containGroovyFiles(state.sourceRoots)) return
def ant = projectBuilder.binding.ant
String targetFolder = projectBuilder.targetFolder
File dir = new File(targetFolder != null ? targetFolder : ".", "___temp___")
BuildUtil.deleteDir(projectBuilder, dir.absolutePath)
ant.mkdir(dir: dir)
def stubsRoot = dir.getAbsolutePath()
ant.generatestubs(destdir: stubsRoot) {
state.sourceRoots.each {
src(path: it)
}
include(name: "**/*.groovy")
include(name: "**/*.java")
classpath {
state.classpath.each {
pathelement(location: it)
}
}
}
if (state.incremental) {
Set<File> excluded = state.excludes.collect { new File(it.toString()) }
List<File> filesToCompile = new LinkedList<File>()
JavaFileCollector.collectRecursively(new File(stubsRoot), filesToCompile, excluded)
filesToCompile.each {state.sourceFiles << it.getAbsolutePath()}
}
state.sourceRoots << stubsRoot
state.tempRootsToDelete << stubsRoot
}