Commit 37900a7394880d793ab85216cee3f546ecdac0dd

Authored by zhoulc
1 parent 56ea65e5

修改一键改包的bug

yudao-server/src/test/java/cn/iocoder/yudao/ProjectReactor.java
@@ -8,10 +8,11 @@ import org.apache.commons.io.FileUtils; @@ -8,10 +8,11 @@ import org.apache.commons.io.FileUtils;
8 import java.io.File; 8 import java.io.File;
9 import java.nio.charset.StandardCharsets; 9 import java.nio.charset.StandardCharsets;
10 import java.util.Collection; 10 import java.util.Collection;
  11 +import java.util.regex.Matcher;
11 12
12 /** 13 /**
13 * 项目修改器,一键替换 Maven 的 groupId、artifactId,项目的 package 等 14 * 项目修改器,一键替换 Maven 的 groupId、artifactId,项目的 package 等
14 - * 15 + * <p>
15 * 通过修改 groupIdNew、artifactIdNew、projectBaseDirNew 三个变量 16 * 通过修改 groupIdNew、artifactIdNew、projectBaseDirNew 三个变量
16 * 17 *
17 * @author 芋道源码 18 * @author 芋道源码
@@ -22,18 +23,19 @@ public class ProjectReactor { @@ -22,18 +23,19 @@ public class ProjectReactor {
22 private static final String GROUP_ID = "cn.iocoder.boot"; 23 private static final String GROUP_ID = "cn.iocoder.boot";
23 private static final String ARTIFACT_ID = "yudao"; 24 private static final String ARTIFACT_ID = "yudao";
24 private static final String PACKAGE_NAME = "cn.iocoder.yudao"; 25 private static final String PACKAGE_NAME = "cn.iocoder.yudao";
25 - private static final String TITLE = "芋道管理系统"; 26 + private static final String TITLE = "欣辰装点猫管理系统";
26 27
27 public static void main(String[] args) { 28 public static void main(String[] args) {
  29 + long start = System.currentTimeMillis();
28 String projectBaseDir = getProjectBaseDir(); 30 String projectBaseDir = getProjectBaseDir();
29 31
30 // ========== 配置,需要你手动修改 ========== 32 // ========== 配置,需要你手动修改 ==========
31 - String groupIdNew = "cn.star.gg";  
32 - String artifactIdNew = "star";  
33 - String packageNameNew = "cn.start.pp";  
34 - String titleNew = "土豆管理系统"; 33 + String groupIdNew = "cn.huwing.boot";
  34 + String artifactIdNew = "zdm";
  35 + String packageNameNew = "cn.huwing.zdm";
  36 + String titleNew = "欣辰装点猫管理系统";
35 String projectBaseDirNew = projectBaseDir + "-new"; // 一键改名后,“新”项目所在的目录 37 String projectBaseDirNew = projectBaseDir + "-new"; // 一键改名后,“新”项目所在的目录
36 - // ========== ========== 38 + log.info("[main][新项目路径地址]projectBaseDirNew: " + projectBaseDirNew);
37 39
38 // 获得需要复制的文件 40 // 获得需要复制的文件
39 log.info("[main][开始获得需要重写的文件]"); 41 log.info("[main][开始获得需要重写的文件]");
@@ -44,13 +46,12 @@ public class ProjectReactor { @@ -44,13 +46,12 @@ public class ProjectReactor {
44 String content = replaceFileContent(file, groupIdNew, artifactIdNew, packageNameNew, titleNew); 46 String content = replaceFileContent(file, groupIdNew, artifactIdNew, packageNameNew, titleNew);
45 writeFile(file, content, projectBaseDir, projectBaseDirNew, packageNameNew, artifactIdNew); 47 writeFile(file, content, projectBaseDir, projectBaseDirNew, packageNameNew, artifactIdNew);
46 }); 48 });
47 - log.info("[main][重写完成]"); 49 + long end = System.currentTimeMillis();
  50 + log.info("[main][重写完成]共耗时:" + (end - start) / 1000 + "秒");
48 } 51 }
49 52
50 private static String getProjectBaseDir() { 53 private static String getProjectBaseDir() {
51 - // noinspection ConstantConditions  
52 - return StrUtil.subBefore(ProjectReactor.class.getClassLoader().getResource("").getFile(),  
53 - "/yudao-server", false); 54 + return StrUtil.subBefore(new File(ProjectReactor.class.getClassLoader().getResource(File.separator).getFile()).getPath(), "\\yudao-server", false);
54 } 55 }
55 56
56 private static Collection<File> listFiles(String projectBaseDir) { 57 private static Collection<File> listFiles(String projectBaseDir) {
@@ -59,6 +60,7 @@ public class ProjectReactor { @@ -59,6 +60,7 @@ public class ProjectReactor {
59 files.removeIf(file -> file.getPath().contains("/node_modules/")); 60 files.removeIf(file -> file.getPath().contains("/node_modules/"));
60 files.removeIf(file -> file.getPath().contains("/.idea/")); // 移除 IDEA 自身的文件 61 files.removeIf(file -> file.getPath().contains("/.idea/")); // 移除 IDEA 自身的文件
61 files.removeIf(file -> file.getPath().contains("/.git/")); // 移除 Git 自身的文件 62 files.removeIf(file -> file.getPath().contains("/.git/")); // 移除 Git 自身的文件
  63 + files.removeIf(file -> file.getPath().contains("/.github/")); // 移除 GitHub 自身的文件
62 files.removeIf(file -> file.getPath().contains("/dist/")); // 移除 Node 编译出来的 64 files.removeIf(file -> file.getPath().contains("/dist/")); // 移除 Node 编译出来的
63 return files; 65 return files;
64 } 66 }
@@ -77,11 +79,10 @@ public class ProjectReactor { @@ -77,11 +79,10 @@ public class ProjectReactor {
77 private static void writeFile(File file, String fileContent, String projectBaseDir, 79 private static void writeFile(File file, String fileContent, String projectBaseDir,
78 String projectBaseDirNew, String packageNameNew, String artifactIdNew) { 80 String projectBaseDirNew, String packageNameNew, String artifactIdNew) {
79 String newPath = file.getPath().replace(projectBaseDir, projectBaseDirNew) // 新目录 81 String newPath = file.getPath().replace(projectBaseDir, projectBaseDirNew) // 新目录
80 - .replace(PACKAGE_NAME.replaceAll("\\.", File.separator),  
81 - packageNameNew.replaceAll("\\.", File.separator)) 82 + .replace(PACKAGE_NAME.replaceAll("\\.", Matcher.quoteReplacement(File.separator)),
  83 + packageNameNew.replaceAll("\\.", Matcher.quoteReplacement(File.separator)))
82 .replace(ARTIFACT_ID, artifactIdNew) // 84 .replace(ARTIFACT_ID, artifactIdNew) //
83 .replaceAll(StrUtil.upperFirst(ARTIFACT_ID), StrUtil.upperFirst(artifactIdNew)); 85 .replaceAll(StrUtil.upperFirst(ARTIFACT_ID), StrUtil.upperFirst(artifactIdNew));
84 FileUtil.writeUtf8String(fileContent, newPath); 86 FileUtil.writeUtf8String(fileContent, newPath);
85 } 87 }
86 -  
87 -} 88 +}
88 \ No newline at end of file 89 \ No newline at end of file