You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
2.4 KiB
46 lines
2.4 KiB
#!/bin/bash
|
|
|
|
# SpringDoc OpenAPI 注解迁移脚本
|
|
# 将 Springfox 注解替换为 SpringDoc OpenAPI 注解
|
|
|
|
echo "开始迁移 Swagger 注解..."
|
|
|
|
# 查找所有 Java 文件
|
|
find src/main/java -name "*.java" -type f | while read file; do
|
|
echo "处理文件: $file"
|
|
|
|
# 备份原文件
|
|
cp "$file" "$file.bak"
|
|
|
|
# 替换 import 语句
|
|
sed -i '' 's/import io\.swagger\.annotations\.Api;/import io.swagger.v3.oas.annotations.tags.Tag;/g' "$file"
|
|
sed -i '' 's/import io\.swagger\.annotations\.ApiOperation;/import io.swagger.v3.oas.annotations.Operation;/g' "$file"
|
|
sed -i '' 's/import io\.swagger\.annotations\.ApiParam;/import io.swagger.v3.oas.annotations.Parameter;/g' "$file"
|
|
sed -i '' 's/import io\.swagger\.annotations\.ApiModel;/import io.swagger.v3.oas.annotations.media.Schema;/g' "$file"
|
|
sed -i '' 's/import io\.swagger\.annotations\.ApiModelProperty;/import io.swagger.v3.oas.annotations.media.Schema;/g' "$file"
|
|
|
|
# 替换注解使用
|
|
sed -i '' 's/@Api(tags = "\([^"]*\)")/@Tag(name = "\1")/g' "$file"
|
|
sed -i '' 's/@ApiOperation("\([^"]*\)")/@Operation(summary = "\1")/g' "$file"
|
|
sed -i '' 's/@ApiOperation(value = "\([^"]*\)")/@Operation(summary = "\1")/g' "$file"
|
|
sed -i '' 's/@ApiOperation(value = "\([^"]*\)", notes = "\([^"]*\)")/@Operation(summary = "\1", description = "\2")/g' "$file"
|
|
|
|
# 替换实体类注解
|
|
sed -i '' 's/@ApiModel(value = "\([^"]*\)", description = "\([^"]*\)")/@Schema(name = "\1", description = "\2")/g' "$file"
|
|
sed -i '' 's/@ApiModel(value = "\([^"]*\)")/@Schema(name = "\1")/g' "$file"
|
|
sed -i '' 's/@ApiModel("\([^"]*\)")/@Schema(description = "\1")/g' "$file"
|
|
|
|
# 替换属性注解
|
|
sed -i '' 's/@ApiModelProperty(value = "\([^"]*\)")/@Schema(description = "\1")/g' "$file"
|
|
sed -i '' 's/@ApiModelProperty("\([^"]*\)")/@Schema(description = "\1")/g' "$file"
|
|
|
|
# 替换参数注解
|
|
sed -i '' 's/@ApiParam(name = "\([^"]*\)", value = "\([^"]*\)", required = \([^)]*\))/@Parameter(name = "\1", description = "\2", required = \3)/g' "$file"
|
|
sed -i '' 's/@ApiParam(value = "\([^"]*\)")/@Parameter(description = "\1")/g' "$file"
|
|
sed -i '' 's/@ApiParam("\([^"]*\)")/@Parameter(description = "\1")/g' "$file"
|
|
|
|
echo "完成处理: $file"
|
|
done
|
|
|
|
echo "注解迁移完成!"
|
|
echo "请检查修改后的文件,如有问题可以从 .bak 文件恢复"
|