def processModule()

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
  }