diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java index f8261991bf67..0a3e458912d8 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/CompileDriver.java @@ -187,9 +187,15 @@ public class CompileDriver { } public void rebuild(CompileStatusNotification callback) { - CompileScope projectScope = ArtifactCompileScope.createScopeWithArtifacts(new ProjectCompileScope(myProject), - ArtifactUtil.getArtifactWithOutputPaths(myProject), false); - final CompileScope compileScope = useOutOfProcessBuild() ? projectScope : addAdditionalRoots(projectScope, ALL_EXCEPT_SOURCE_PROCESSING); + final CompileScope compileScope; + ProjectCompileScope projectScope = new ProjectCompileScope(myProject); + if (useOutOfProcessBuild()) { + compileScope = projectScope; + } + else { + CompileScope scopeWithArtifacts = ArtifactCompileScope.createScopeWithArtifacts(projectScope, ArtifactUtil.getArtifactWithOutputPaths(myProject), false); + compileScope = addAdditionalRoots(scopeWithArtifacts, ALL_EXCEPT_SOURCE_PROCESSING); + } doRebuild(callback, null, true, compileScope); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java index d0b24b047a50..d13f0e4f01da 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -321,7 +321,9 @@ public class IncProjectBuilder { } else { for (BuildTarget target : projectDescriptor.getBuildTargetIndex().getAllTargets()) { - clearOutputFiles(context, target); + if (context.getScope().isAffected(target)) { + clearOutputFiles(context, target); + } } } } @@ -389,9 +391,11 @@ public class IncProjectBuilder { ProjectDescriptor projectDescriptor = context.getProjectDescriptor(); for (BuildTarget target : projectDescriptor.getBuildTargetIndex().getAllTargets()) { - final Collection outputs = target.getOutputRoots(context); - for (File file : outputs) { - rootsToDelete.putValue(file, target); + if (context.getScope().isAffected(target)) { + final Collection outputs = target.getOutputRoots(context); + for (File file : outputs) { + rootsToDelete.putValue(file, target); + } } }