mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
deleting classpath index files for changed output roots
This commit is contained in:
@@ -16,10 +16,7 @@
|
||||
package org.jetbrains.jps.incremental;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.LowMemoryWatcher;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.UserDataHolder;
|
||||
import com.intellij.openapi.util.UserDataHolderBase;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.SmartList;
|
||||
@@ -84,7 +81,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
public class IncProjectBuilder {
|
||||
private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.IncProjectBuilder");
|
||||
|
||||
private static final String CLASSPATH_INDEX_FINE_NAME = "classpath.index";
|
||||
private static final String CLASSPATH_INDEX_FILE_NAME = "classpath.index";
|
||||
private static final boolean GENERATE_CLASSPATH_INDEX = Boolean.parseBoolean(System.getProperty(GlobalOptions.GENERATE_CLASSPATH_INDEX_OPTION, "false"));
|
||||
private static final boolean SYNC_DELETE = Boolean.parseBoolean(System.getProperty("jps.sync.delete", SystemInfo.isWindows ? "true" : "false"));
|
||||
private static final GlobalContextKey<Set<BuildTarget<?>>> TARGET_WITH_CLEARED_OUTPUT = GlobalContextKey.create("_targets_with_cleared_output_");
|
||||
@@ -334,7 +331,25 @@ public class IncProjectBuilder {
|
||||
BuildRunner.PARALLEL_BUILD_ENABLED);
|
||||
|
||||
context.addBuildListener(new ChainedTargetsBuildListener(context));
|
||||
|
||||
//Deletes class loader classpath index files for changed output roots
|
||||
context.addBuildListener(new BuildListener() {
|
||||
@Override
|
||||
public void filesGenerated(Collection<Pair<String, String>> paths) {
|
||||
final Set<File> outputs = new THashSet<File>(FileUtil.FILE_HASHING_STRATEGY);
|
||||
for (Pair<String, String> pair : paths) {
|
||||
outputs.add(new File(pair.getFirst()));
|
||||
}
|
||||
for (File root : outputs) {
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
new File(root, CLASSPATH_INDEX_FILE_NAME).delete();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void filesDeleted(Collection<String> paths) {
|
||||
}
|
||||
});
|
||||
for (TargetBuilder builder : myBuilderRegistry.getTargetBuilders()) {
|
||||
builder.buildStarted(context);
|
||||
}
|
||||
@@ -965,7 +980,7 @@ public class IncProjectBuilder {
|
||||
File outputDir = ((ModuleBuildTarget)target).getOutputDir();
|
||||
if (outputDir != null && outputDirs.add(outputDir)) {
|
||||
try {
|
||||
BufferedWriter writer = new BufferedWriter(new FileWriter(new File(outputDir, CLASSPATH_INDEX_FINE_NAME)));
|
||||
BufferedWriter writer = new BufferedWriter(new FileWriter(new File(outputDir, CLASSPATH_INDEX_FILE_NAME)));
|
||||
try {
|
||||
writeIndex(writer, outputDir, "");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user