diff -r 92ccd639df19 -r e79e499caac8 mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java --- a/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java Tue Oct 16 17:18:37 2012 +0200 +++ b/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Bck2BrswrMojo.java Wed Oct 31 16:54:42 2012 +0100 @@ -64,9 +64,11 @@ } List arr = new ArrayList(); - collectAllClasses("", classes, arr); + long newest = collectAllClasses("", classes, arr); - + if (javascript.lastModified() > newest) { + return; + } try { URLClassLoader url = buildClassLoader(classes, prj.getDependencyArtifacts()); @@ -93,14 +95,22 @@ return dir; } - private static void collectAllClasses(String prefix, File toCheck, List arr) { + private static long collectAllClasses(String prefix, File toCheck, List arr) { File[] files = toCheck.listFiles(); if (files != null) { + long newest = 0L; for (File f : files) { - collectAllClasses(prefix + f.getName() + "/", f, arr); + long lastModified = collectAllClasses(prefix + f.getName() + "/", f, arr); + if (newest < lastModified) { + newest = lastModified; + } } + return newest; } else if (toCheck.getName().endsWith(".class")) { arr.add(prefix.substring(0, prefix.length() - 7)); + return toCheck.lastModified(); + } else { + return 0L; } }