mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
external artifact builder: extract content of jar even if jar is excluded
This commit is contained in:
+2
-1
@@ -56,8 +56,9 @@ public abstract class ArtifactCompilerInstructionCreatorBase implements Artifact
|
||||
|
||||
@Override
|
||||
public void addExtractDirectoryInstruction(@NotNull File jarFile, @NotNull String pathInJar) {
|
||||
final boolean copyExcluded = myInstructionsBuilder.getRootsIndex().isExcluded(jarFile);
|
||||
final SourceFileFilterImpl filter = new SourceFileFilterImpl(null, myInstructionsBuilder.getRootsIndex(),
|
||||
myInstructionsBuilder.getIgnoredFileIndex(), false);
|
||||
myInstructionsBuilder.getIgnoredFileIndex(), copyExcluded);
|
||||
DestinationInfo destination = createDirectoryDestination();
|
||||
if (destination != null) {
|
||||
ArtifactRootDescriptor descriptor = myInstructionsBuilder.createJarBasedRoot(jarFile, pathInJar, filter, destination);
|
||||
|
||||
+13
@@ -229,6 +229,19 @@ public class ArtifactBuilderTest extends ArtifactBuilderTestCase {
|
||||
.file("TestRunner.class"));
|
||||
}
|
||||
|
||||
public void testExtractDirectoryFromExcludedJar() throws IOException {
|
||||
String jarPath = createFile("dir/lib/j.jar");
|
||||
FileUtil.copy(new File(getJUnitJarPath()), new File(jarPath));
|
||||
JpsModule module = addModule("m");
|
||||
String libDir = PathUtil.getParentPath(jarPath);
|
||||
module.getContentRootsList().addUrl(JpsPathUtil.pathToUrl(PathUtil.getParentPath(libDir)));
|
||||
module.getExcludeRootsList().addUrl(JpsPathUtil.pathToUrl(libDir));
|
||||
final JpsArtifact a = addArtifact("a", root().extractedDir(jarPath, "/junit/textui/"));
|
||||
buildAll();
|
||||
assertOutput(a, fs().file("ResultPrinter.class")
|
||||
.file("TestRunner.class"));
|
||||
}
|
||||
|
||||
public void testPackExtractedDirectory() {
|
||||
final JpsArtifact a = addArtifact("a", root().archive("a.jar").extractedDir(getJUnitJarPath(), "/junit/textui/"));
|
||||
buildAll();
|
||||
|
||||
Reference in New Issue
Block a user