copy non-java files into remapped sources jar (fixes #126 and #118) (#129)

* copy non-java files into remapped sources jar

* Simplify isJavaFile

* remove unused import

* Use path API
dev/0.11
Fudge 2019-08-23 13:59:16 +03:00 committed by Modmuss50
parent 5ab5097b4d
commit 7c6e9a37c0
1 changed files with 22 additions and 0 deletions

View File

@ -135,6 +135,8 @@ public class SourceRemapper {
project.getLogger().warn("Could not remap " + source.getName() + " fully!", e); project.getLogger().warn("Could not remap " + source.getName() + " fully!", e);
} }
copyNonJavaFiles(srcPath, dstPath, project, source);
if (dstFs != null) { if (dstFs != null) {
dstFs.close(); dstFs.close();
} }
@ -142,6 +144,26 @@ public class SourceRemapper {
if (isSrcTmp) { if (isSrcTmp) {
Files.walkFileTree(srcPath, new DeletingFileVisitor()); Files.walkFileTree(srcPath, new DeletingFileVisitor());
} }
}
private static void copyNonJavaFiles(Path from, Path to, Project project, File source) throws IOException {
Files.walk(from).forEach(path -> {
Path targetPath = to.resolve(from.relativize(path).toString());
if (!isJavaFile(path) && !Files.exists(targetPath)) {
try {
Files.copy(path, targetPath);
} catch (IOException e) {
project.getLogger().warn("Could not copy non-java sources '" + source.getName() + "' fully!", e);
}
}
});
}
private static boolean isJavaFile(Path path) {
String name = path.getFileName().toString();
// ".java" is not a valid java file
return name.endsWith(".java") && name.length() != 5;
} }
public static class TinyReader extends MappingsReader { public static class TinyReader extends MappingsReader {