1111import java .io .IOException ;
1212import java .nio .charset .StandardCharsets ;
1313import java .nio .file .Files ;
14+ import java .nio .file .Path ;
1415import java .nio .file .Paths ;
1516import java .util .Set ;
1617import java .util .stream .Collectors ;
@@ -25,6 +26,14 @@ public JsonDependencyExporter(ExportDependenciesExtension exportDependenciesExte
2526 this .exportDependenciesExtension = exportDependenciesExtension ;
2627 }
2728
29+ private static void createParent (Path path ){
30+ try {
31+ Files .createDirectories (path .getParent ());
32+ } catch (IOException e ) {
33+ throw new ExporterException (e );
34+ }
35+ }
36+
2837 @ Override
2938 public void export (Set <ExternalDependency > dependencies ) {
3039 if (!exportDependenciesExtension .isEnabled ()) {
@@ -38,10 +47,12 @@ public void export(Set<ExternalDependency> dependencies) {
3847 .collect (Collectors .toSet ());
3948
4049 Gson gson = new GsonBuilder ().setPrettyPrinting ().create ();
50+ String file = exportDependenciesExtension .getFile ();
51+ Path path = Paths .get (file );
52+ createParent (path );
4153 try (BufferedWriter writer =
42- Files .newBufferedWriter (
43- Paths .get (exportDependenciesExtension .getFile ()), StandardCharsets .UTF_8 )) {
44- LOG .info ("Exporting dependencies to JSON at " + exportDependenciesExtension .getFile ());
54+ Files .newBufferedWriter (path , StandardCharsets .UTF_8 )) {
55+ LOG .info ("Exporting dependencies to JSON at " + file );
4556 gson .toJson (dependencyModels , writer );
4657 } catch (IOException e ) {
4758 throw new ExporterException (e );
0 commit comments