1. 修复服务与模块生成器,未正确全量替换端口的错误

This commit is contained in:
chenbowen
2025-09-02 10:30:55 +08:00
parent e99da38fd4
commit 81f3387195
5 changed files with 37 additions and 102 deletions

View File

@@ -158,6 +158,28 @@ public class ModuleGenerator {
return processErrorCodeConstants(content, moduleName, packageName, author);
}
// 处理配置文件
if (fileName.endsWith(".yml") || fileName.endsWith(".yaml")) {
String newContent = content;
// 替换应用名称
newContent = newContent.replace("name: yudao-module-template-server", "name: yudao-module-" + moduleName + "-server");
// 处理端口配置
if (newContent.contains("port:")) {
// 使用更精确的正则表达式来匹配端口行
newContent = newContent.replaceAll("(?m)^(\\s*)port:\\s*\\d+\\s*$", "$1port: " + port);
} else if (newContent.contains("server:")) {
// 如果有server配置但没有port在server下添加port
newContent = newContent.replaceAll("(?m)^(\\s*)server:\\s*$", "$1server:\n$1 port: " + port);
} else {
// 如果完全没有server配置在文件开头添加
newContent = "server:\n port: " + port + "\n\n" + newContent;
}
return newContent;
}
return content.replace("yudao-module-template", "yudao-module-" + moduleName)
.replace("cn.iocoder.yudao.module.template", BASE_PACKAGE + packageName)
.replace("TemplateServerApplication", capitalizedModuleName + "ServerApplication")

View File

@@ -35,10 +35,7 @@ public class ServerGenerator {
int startPort = Integer.parseInt(scanner.nextLine());
scanner.close();
// 分割服务
String[] servers = baseNames.split(",");
// 分割服务器名
// 分割服务名
String[] servers = baseNames.split(",");
// 2. 定义项目根路径
@@ -149,17 +146,22 @@ public class ServerGenerator {
// 移除对 yudao-module-xxx-server 的依赖,但保留 system-server 和 infra-server
return newContent.replaceAll("(?m)^\\s*<dependency>\\s*<groupId>cn\\.iocoder\\.cloud</groupId>\\s*<artifactId>yudao-module-(?!system-server|infra-server).*-server</artifactId>[\\s\\S]*?</dependency>\\s*", "");
case "application.yaml":
case "application.yml":
// 替换应用名称和端口号
case "application-dev.yaml":
case "application-prod.yaml":
case "application-test.yaml":
case "application-local.yaml":
// 替换应用名称
newContent = newContent.replace("name: yudao-server", "name: " + serverName);
// 如果有端口配置,替换端口号,如果没有则添加端口配置
if (newContent.contains("server:")) {
if (newContent.contains("port:")) {
newContent = newContent.replaceAll("(?m)^\\s*port:.*$", " port: " + port);
} else {
newContent = newContent.replace("server:", "server:\n port: " + port);
}
// 处理端口配置 - 更精确的替换逻辑
if (newContent.contains("port:")) {
// 使用更精确的正则表达式来匹配端口行
newContent = newContent.replaceAll("(?m)^(\\s*)port:\\s*\\d+\\s*$", "$1port: " + port);
} else if (newContent.contains("server:")) {
// 如果有server配置但没有port在server下添加port
newContent = newContent.replaceAll("(?m)^(\\s*)server:\\s*$", "$1server:\n$1 port: " + port);
} else {
// 如果完全没有server配置在文件开头添加
newContent = "server:\n port: " + port + "\n\n" + newContent;
}
return newContent;