From d9b70fa067be645a0298db514688ea19a2cb5687 Mon Sep 17 00:00:00 2001 From: JingZhang Chen Date: Mon, 29 Apr 2024 17:08:26 +0800 Subject: [PATCH 1/2] fix newFileSystem use non-existent URI --- src/main/scala/sbtassembly/Assembly.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/scala/sbtassembly/Assembly.scala b/src/main/scala/sbtassembly/Assembly.scala index 58732b1..d697e13 100644 --- a/src/main/scala/sbtassembly/Assembly.scala +++ b/src/main/scala/sbtassembly/Assembly.scala @@ -67,7 +67,7 @@ object Assembly { /* Closeable resources */ private[sbtassembly] val jarFileSystemResource = - Using.resource((uri: URI) => FileSystems.newFileSystem(uri, Map("create" -> "true").asJava)) + Using.resource((uri: URI) => FileSystems.newFileSystem(uri, Map.empty[String, String].asJava)) private[sbtassembly] val jarEntryInputStreamResource = Using.resource((entry: JarEntry) => entry.stream()) private[sbtassembly] val jarEntryOutputStreamResource = Using.resource((path: Path) => Files.newOutputStream(path, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE) @@ -353,6 +353,10 @@ object Assembly { throw new RuntimeException("Exiting task") } else { IO.delete(output) + val dest = output.getParentFile + if (!dest.exists()) { + dest.mkdirs() + } createJar(output, jarEntriesToWrite, jarManifest, localTime) } } From 5992c17caebc65de9d2787e9dfcbc1fbbfd96874 Mon Sep 17 00:00:00 2001 From: JingZhang Chen Date: Mon, 29 Apr 2024 19:14:26 +0800 Subject: [PATCH 2/2] keep the environment setup --- src/main/scala/sbtassembly/Assembly.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/sbtassembly/Assembly.scala b/src/main/scala/sbtassembly/Assembly.scala index d697e13..565e453 100644 --- a/src/main/scala/sbtassembly/Assembly.scala +++ b/src/main/scala/sbtassembly/Assembly.scala @@ -67,7 +67,7 @@ object Assembly { /* Closeable resources */ private[sbtassembly] val jarFileSystemResource = - Using.resource((uri: URI) => FileSystems.newFileSystem(uri, Map.empty[String, String].asJava)) + Using.resource((uri: URI) => FileSystems.newFileSystem(uri, Map("create" -> "true").asJava)) private[sbtassembly] val jarEntryInputStreamResource = Using.resource((entry: JarEntry) => entry.stream()) private[sbtassembly] val jarEntryOutputStreamResource = Using.resource((path: Path) => Files.newOutputStream(path, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE)