diff --git a/src/main/java/dev/jbang/Cache.java b/src/main/java/dev/jbang/Cache.java index f60513ce1..4d3f93ef4 100644 --- a/src/main/java/dev/jbang/Cache.java +++ b/src/main/java/dev/jbang/Cache.java @@ -5,6 +5,7 @@ import java.nio.file.Path; import dev.jbang.cli.ExitException; +import dev.jbang.dependencies.DependencyCache; import dev.jbang.devkitman.Jdk; import dev.jbang.devkitman.JdkManager; import dev.jbang.util.JavaUtil; @@ -39,6 +40,10 @@ public static void clearCache(CacheClass... classes) { Util.verboseMsg("Deleting file " + Settings.getCacheDependencyFile()); Files.deleteIfExists(Settings.getCacheDependencyFile().toAbsolutePath()); } + // Also delete the actual dependency cache directory containing JARs + Util.deletePath(Settings.getCacheDir(cc), true); + // Clear in-memory cache + DependencyCache.clear(); } catch (IOException io) { throw new ExitException(-1, "Could not delete dependency cache " + Settings.getCacheDependencyFile().toString(), io); @@ -48,4 +53,4 @@ public static void clearCache(CacheClass... classes) { } } } -} +} \ No newline at end of file diff --git a/src/main/java/dev/jbang/dependencies/DependencyCache.java b/src/main/java/dev/jbang/dependencies/DependencyCache.java index 6e9687e38..dfcc41c57 100644 --- a/src/main/java/dev/jbang/dependencies/DependencyCache.java +++ b/src/main/java/dev/jbang/dependencies/DependencyCache.java @@ -140,6 +140,22 @@ public static List findDependenciesByHash(String depsHash) { public static void clear() { depCache = null; + // Also clear the dependency cache JSON file from disk + try { + Path cacheFile = Settings.getCacheDependencyFile(); + if (Files.exists(cacheFile)) { + Util.verboseMsg("Deleting dependency cache file: " + cacheFile); + Files.deleteIfExists(cacheFile); + } + // Also clear the depcache directory containing actual JARs + Path depCacheDir = Settings.getCacheDir(dev.jbang.Cache.CacheClass.deps); + if (Files.exists(depCacheDir)) { + Util.verboseMsg("Deleting dependency cache dir: " + depCacheDir); + Util.deletePath(depCacheDir, true); + } + } catch (IOException e) { + Util.errorMsg("Could not clear dependency cache files", e); + } } }