diff --git a/buildSrc/src/main/java/com/uber/okbuck/core/dependency/exporter/JsonDependencyExporter.java b/buildSrc/src/main/java/com/uber/okbuck/core/dependency/exporter/JsonDependencyExporter.java index b9867cdf..54dbb44b 100644 --- a/buildSrc/src/main/java/com/uber/okbuck/core/dependency/exporter/JsonDependencyExporter.java +++ b/buildSrc/src/main/java/com/uber/okbuck/core/dependency/exporter/JsonDependencyExporter.java @@ -11,6 +11,7 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.Set; import java.util.stream.Collectors; @@ -25,6 +26,14 @@ public JsonDependencyExporter(ExportDependenciesExtension exportDependenciesExte this.exportDependenciesExtension = exportDependenciesExtension; } + private static void createParent(Path path){ + try{ + Files.createDirectories(path.getParent()); + } catch (IOException e) { + throw new ExporterException(e); + } + } + @Override public void export(Set dependencies) { if (!exportDependenciesExtension.isEnabled()) { @@ -38,10 +47,12 @@ public void export(Set dependencies) { .collect(Collectors.toSet()); Gson gson = new GsonBuilder().setPrettyPrinting().create(); + String file = exportDependenciesExtension.getFile(); + Path path = Paths.get(file); + createParent(path); try (BufferedWriter writer = - Files.newBufferedWriter( - Paths.get(exportDependenciesExtension.getFile()), StandardCharsets.UTF_8)) { - LOG.info("Exporting dependencies to JSON at " + exportDependenciesExtension.getFile()); + Files.newBufferedWriter(path, StandardCharsets.UTF_8)) { + LOG.info("Exporting dependencies to JSON at " + file); gson.toJson(dependencyModels, writer); } catch (IOException e) { throw new ExporterException(e);