From a6c251c8daeab0012356886f4effa29750c02243 Mon Sep 17 00:00:00 2001 From: zhangxun <1958638841@qq.com> Date: Wed, 2 Jul 2025 22:43:09 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20CleanTask=20=E5=B0=86=20build=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=88=A0=E9=99=A4=E5=AF=BC=E8=87=B4=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E5=B0=86=E5=AD=97=E8=8A=82=E7=A0=81=E5=86=99=E5=85=A5?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java b/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java index 80700d6..2b6da14 100644 --- a/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java +++ b/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java @@ -30,8 +30,13 @@ public final class CleanTask implements Task { */ @Override public void run() throws IOException { - deleteDir(Path.of("build")); - deleteDir(Path.of("dist")); + Path build = Path.of("build"); + Path dist = Path.of("dist"); + deleteDir(build); + deleteDir(dist); + Files.createDirectories(build); + Files.createDirectories(dist); + System.out.println("[clean] done."); } From 3c43e31afb202a93c133a534fa8d1bee3b43c862 Mon Sep 17 00:00:00 2001 From: zhangxun <1958638841@qq.com> Date: Sat, 5 Jul 2025 10:35:33 +0800 Subject: [PATCH 2/4] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=20clean=20?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E7=9A=84=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E5=85=B6=E7=AC=A6=E5=90=88=E7=9B=B4=E8=A7=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jcnc/snow/pkg/tasks/CleanTask.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java b/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java index 2b6da14..3022a35 100644 --- a/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java +++ b/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java @@ -32,16 +32,15 @@ public final class CleanTask implements Task { public void run() throws IOException { Path build = Path.of("build"); Path dist = Path.of("dist"); - deleteDir(build); - deleteDir(dist); - Files.createDirectories(build); - Files.createDirectories(dist); + deleteDir(build, false); + deleteDir(dist, false); System.out.println("[clean] done."); } /** - * 递归删除指定目录及其所有子文件和子目录。 + * 递归删除指定目录下的所有子文件和子目录。 + * 如需删除指定目录本身可将第二个参数 containSelf 设置为 true *
* 若目录不存在,则直接返回。 *
@@ -50,14 +49,18 @@ public final class CleanTask implements Task { * * * @param dir 需要删除的目录路径 + * @param containSelf 是否删除指定目录本身 * @throws IOException 删除目录或文件过程中发生 IO 错误时抛出 */ - private void deleteDir(Path dir) throws IOException { + private void deleteDir(Path dir, boolean containSelf) throws IOException { if (Files.notExists(dir)) return; try (var stream = Files.walk(dir)) { stream.sorted(Comparator.reverseOrder()) // 先删子文件,后删父目录 .forEach(p -> { try { + if (!containSelf && p == dir) { + return; + } Files.delete(p); } catch (IOException e) { throw new RuntimeException(e); From a1b92f0cc81e1ab87cd93740c94d01bbc9ea17a5 Mon Sep 17 00:00:00 2001 From: zhangxun <1958638841@qq.com> Date: Sat, 5 Jul 2025 10:37:28 +0800 Subject: [PATCH 3/4] =?UTF-8?q?style:=20=E7=A7=BB=E9=99=A4=E6=B2=A1?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=E5=B1=80=E9=83=A8=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java b/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java index 3022a35..021c44b 100644 --- a/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java +++ b/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java @@ -30,10 +30,8 @@ public final class CleanTask implements Task { */ @Override public void run() throws IOException { - Path build = Path.of("build"); - Path dist = Path.of("dist"); - deleteDir(build, false); - deleteDir(dist, false); + deleteDir(Path.of("build"), false); + deleteDir(Path.of("dist"), false); System.out.println("[clean] done."); } From 699bc2721e1bcd8707abbb4da34ef7bd86657329 Mon Sep 17 00:00:00 2001 From: zhangxun <1958638841@qq.com> Date: Sat, 5 Jul 2025 10:41:21 +0800 Subject: [PATCH 4/4] =?UTF-8?q?docs:=20=E4=BC=98=E5=8C=96=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E6=96=87=E6=A1=A3=E7=9A=84=E4=B8=BB=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E9=83=A8=E5=88=86=EF=BC=8C=E4=BB=A5=E6=9B=B4=E5=A5=BD=E5=9C=B0?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=8F=82=E6=95=B0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java b/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java index 021c44b..c7431d2 100644 --- a/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java +++ b/src/main/java/org/jcnc/snow/pkg/tasks/CleanTask.java @@ -38,7 +38,7 @@ public final class CleanTask implements Task { /** * 递归删除指定目录下的所有子文件和子目录。 - * 如需删除指定目录本身可将第二个参数 containSelf 设置为 true + * 如需删除指定目录本身可将第二个参数 {@code containSelf} 设置为 true ** 若目录不存在,则直接返回。 *