diff -r 9fb23d7831da -r 88b00e03fc8f rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/AOTLibrary.java --- a/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/AOTLibrary.java Wed Apr 15 14:32:54 2015 +0200 +++ b/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/AOTLibrary.java Mon Mar 28 05:55:43 2016 +0200 @@ -18,6 +18,7 @@ package org.apidesign.bck2brwsr.mojo; import java.io.File; +import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; @@ -141,10 +142,12 @@ } } - FileOutputStream fos = new FileOutputStream(this.aotJar); - JarOutputStream os = new JarOutputStream(fos, m); + JarOutputStream os = null; if (!"false".equals(debug)) { + if (os == null) { + os = aotJar(m); + } os.putNextEntry(new JarEntry(debug)); Writer w = new OutputStreamWriter(os, "UTF-8"); configureMain(loader). @@ -154,6 +157,9 @@ os.closeEntry(); } if (!"false".equals(minified)) { + if (os == null) { + os = aotJar(m); + } os.putNextEntry(new JarEntry(minified)); Writer w = new OutputStreamWriter(os, "UTF-8"); @@ -177,6 +183,9 @@ } } { + if (os == null) { + os = aotJar(m); + } os.putNextEntry(new JarEntry(artifactName(a, true))); Writer w = new OutputStreamWriter(os, "UTF-8"); c. @@ -197,7 +206,9 @@ } } } - os.close(); + if (os != null) { + os.close(); + } projectHelper.attachArtifact(prj, "jar", "bck2brwsr", aotJar); } catch (IOException ex) { @@ -205,6 +216,13 @@ } } + private JarOutputStream aotJar(Manifest m) throws IOException, FileNotFoundException { + this.aotJar.getParentFile().mkdirs(); + FileOutputStream fos = new FileOutputStream(this.aotJar); + JarOutputStream os = new JarOutputStream(fos, m); + return os; + } + private Bck2Brwsr configureMain(URLClassLoader loader) throws IOException { Bck2Brwsr c = Bck2BrwsrJars.configureFrom(null, mainJar, loader, ignoreBootClassPath); if (exports != null) {