mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fix "compiler excludes are ignored in resource roots" (IDEA-167954)
This commit is contained in:
@@ -19,8 +19,12 @@ import com.intellij.openapi.util.io.FileUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.builders.BuildRootDescriptor;
|
||||
import org.jetbrains.jps.incremental.ResourcesTarget;
|
||||
import org.jetbrains.jps.model.JpsProject;
|
||||
import org.jetbrains.jps.model.java.JpsJavaExtensionService;
|
||||
import org.jetbrains.jps.model.java.compiler.JpsCompilerExcludes;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -61,6 +65,19 @@ public class ResourceRootDescriptor extends BuildRootDescriptor {
|
||||
return myPackagePrefix;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public FileFilter createFileFilter() {
|
||||
final JpsProject project = getTarget().getModule().getProject();
|
||||
final JpsCompilerExcludes excludes = JpsJavaExtensionService.getInstance().getOrCreateCompilerConfiguration(project).getCompilerExcludes();
|
||||
return new FileFilter() {
|
||||
@Override
|
||||
public boolean accept(File file) {
|
||||
return !excludes.isExcluded(file);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGenerated() {
|
||||
return false;
|
||||
|
||||
+13
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.jps.builders.resources;
|
||||
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.util.PathUtil;
|
||||
import org.jetbrains.jps.builders.JpsBuildTestCase;
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType;
|
||||
@@ -73,4 +74,16 @@ public class ResourceCopyingTest extends JpsBuildTestCase {
|
||||
rebuildAllModules();
|
||||
assertOutput(m, fs().file("A.java", "xxx"));
|
||||
}
|
||||
|
||||
public void testExcludesInResourceRoot() {
|
||||
String file = createFile("res/A.java", "xxx");
|
||||
String excludedFile = createFile("res/excluded.java", "XXX");
|
||||
JpsModule m = addModule("m");
|
||||
m.addSourceRoot(JpsPathUtil.pathToUrl(PathUtil.getParentPath(file)), JavaResourceRootType.RESOURCE);
|
||||
JpsJavaExtensionService.getInstance().getOrCreateCompilerConfiguration(myProject).getCompilerExcludes().addExcludedFile(
|
||||
"file://" + FileUtil.toSystemIndependentName(excludedFile)
|
||||
);
|
||||
rebuildAllModules();
|
||||
assertOutput(m, fs().file("A.java", "xxx"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user