Do not copy sources if the directory does not exist
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 14 Sep 2023 04:51:48 +0000 (06:51 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 14 Sep 2023 04:51:48 +0000 (06:51 +0200)
src/org/argeo/build/Make.java

index ca5fc8e09e5434bef3db05857de9674a23287fae..2568d9baebb2c145dc01ac87377faba0ab8f9d1a 100644 (file)
@@ -517,41 +517,43 @@ public class Make {
                                }
                        });
 
-                       // Add all resources from src/
-                       Files.walkFileTree(srcP, new SimpleFileVisitor<Path>() {
-                               @Override
-                               public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
-                                       // skip directories ending with .js
-                                       // TODO find something more robust?
-                                       if (dir.getFileName().toString().endsWith(".js"))
-                                               return FileVisitResult.SKIP_SUBTREE;
-                                       return super.preVisitDirectory(dir, attrs);
-                               }
+                       if (Files.exists(srcP)) {
+                               // Add all resources from src/
+                               Files.walkFileTree(srcP, new SimpleFileVisitor<Path>() {
+                                       @Override
+                                       public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
+                                               // skip directories ending with .js
+                                               // TODO find something more robust?
+                                               if (dir.getFileName().toString().endsWith(".js"))
+                                                       return FileVisitResult.SKIP_SUBTREE;
+                                               return super.preVisitDirectory(dir, attrs);
+                                       }
 
-                               @Override
-                               public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
-                                       if (file.getFileName().toString().endsWith(".java")
-                                                       || file.getFileName().toString().endsWith(".class"))
+                                       @Override
+                                       public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+                                               if (file.getFileName().toString().endsWith(".java")
+                                                               || file.getFileName().toString().endsWith(".class"))
+                                                       return FileVisitResult.CONTINUE;
+                                               jarOut.putNextEntry(new JarEntry(srcP.relativize(file).toString()));
+                                               if (!Files.isDirectory(file))
+                                                       Files.copy(file, jarOut);
                                                return FileVisitResult.CONTINUE;
-                                       jarOut.putNextEntry(new JarEntry(srcP.relativize(file).toString()));
-                                       if (!Files.isDirectory(file))
-                                               Files.copy(file, jarOut);
-                                       return FileVisitResult.CONTINUE;
-                               }
-                       });
+                                       }
+                               });
 
+                               // add sources
+                               // TODO add effective BND, Eclipse project file, etc., in order to be able to
+                               // repackage
+                               if (!sourceBundles) {
+                                       copySourcesToJar(srcP, jarOut, "OSGI-OPT/src/");
+                               }
+                       }
+                       
                        // add legal notices and licenses
                        for (Path p : listLegalFilesToInclude(source).values()) {
                                jarOut.putNextEntry(new JarEntry(p.getFileName().toString()));
                                Files.copy(p, jarOut);
                        }
-
-                       // add sources
-                       // TODO add effective BND, Eclipse project file, etc., in order to be able to
-                       // repackage
-                       if (!sourceBundles) {
-                               copySourcesToJar(srcP, jarOut, "OSGI-OPT/src/");
-                       }
                }
 
                if (sourceBundles) {// create separate sources jar