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 19d92a99699d..8cf759ecf20d 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -579,8 +579,15 @@ public class IncProjectBuilder { final ProjectDescriptor projectDescriptor = context.getProjectDescriptor(); final List> allTargets = projectDescriptor.getBuildTargetIndex().getAllTargets(); for (BuildTarget target : allTargets) { - for (File file : target.getOutputRoots(context)) { - rootsToDelete.putValue(file, target); + if (target instanceof ModuleBasedTarget) { + for (File file : target.getOutputRoots(context)) { + rootsToDelete.putValue(file, target); + } + } + else { + if (context.getScope().isBuildForced(target)) { + clearOutputFilesUninterruptibly(context, target); + } } } diff --git a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java index 5507efaeee22..1bac80112e27 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java +++ b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTest.java @@ -368,7 +368,7 @@ public class ArtifactBuilderTest extends ArtifactBuilderTestCase { assertOutput(a, fs().file("a.txt").file("b.txt")); rebuildAllModulesAndArtifacts(); - assertOutput(a, fs().file("a.txt")); + assertOutput(a, fs().file("a.txt").file("b.txt")); } public void testDeleteOnlyOutputFileOnRebuildForArchiveArtifact() throws IOException { diff --git a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/CleanArtifactOutputOnRebuildTest.java b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/CleanArtifactOutputOnRebuildTest.java index 663d29275dba..3742f610855c 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/CleanArtifactOutputOnRebuildTest.java +++ b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/CleanArtifactOutputOnRebuildTest.java @@ -36,7 +36,7 @@ public class CleanArtifactOutputOnRebuildTest extends ArtifactBuilderTestCase { assertOutput(a, fs().file("a.txt").file("b.txt")); rebuildAllModulesAndArtifacts(); - assertOutput(a, fs().file("a.txt")); + assertOutput(a, fs().file("a.txt").file("b.txt")); } public void testDoNotCleanOnRebuildIfOptionIsSwitchedOff() { @@ -78,7 +78,7 @@ public class CleanArtifactOutputOnRebuildTest extends ArtifactBuilderTestCase { createFileInArtifactOutput(included, "b.txt"); assertOutput(included, fs().file("a.txt").file("b.txt")); rebuildAllModulesAndArtifacts(); - assertOutput(included, fs().file("a.txt")); + assertOutput(included, fs().file("a.txt").file("b.txt")); } public void testCleanModuleOutputIfItIsIncludedInArtifact() {