安装Java环境(如果已经安装可跳过)
sudo yum install -y java-11-openjdk-devel
同时维护 2.x 和 3.x 版本可确保完美兼容两种规范:
# 创建安装目录
sudo mkdir -p /opt/swagger-codegen/{v2,v3}
sudo chown -R ${USER}:${USER} /opt/swagger-codegen
cd /opt/swagger-codegen
# 下载 2.x 版本 (支持 Swagger 2.0)
wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.34/swagger-codegen-cli-2.4.34.jar -P v2/
mv v2/swagger-codegen-cli-*.jar v2/swagger-codegen-cli.jar
# 下载 3.x 版本 (支持 OpenAPI 3.0)
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.46/swagger-codegen-cli-3.0.46.jar -P v3/
mv v3/swagger-codegen-cli-*.jar v3/swagger-codegen-cli.jar
创建版本切换脚本
# 创建主控制脚本
sudo tee /usr/local/bin/swagger-codegen <<'EOF'
#!/bin/bash
DEFAULT_VERSION="v3" # 设置默认版本
if [[ "$1" == "--use-v2" ]]; then
shift
java -jar /opt/swagger-codegen/v2/swagger-codegen-cli.jar "$@"
elif [[ "$1" == "--use-v3" ]]; then
shift
java -jar /opt/swagger-codegen/v3/swagger-codegen-cli.jar "$@"
else
java -jar /opt/swagger-codegen/$DEFAULT_VERSION/swagger-codegen-cli.jar "$@"
fi
EOF
# 添加执行权限
sudo chmod +x /usr/local/bin/swagger-codegen
验证双版本支持
-----服务端-----
# 测试 Swagger 2.0 规范生成
swagger-codegen --use-v2 generate \
-i https://petstore.swagger.io/v2/swagger.json \
-l aspnetcore \
-o /tmp/petstore-v2
# 测试 OpenAPI 3.0 规范生成
swagger-codegen --use-v3 generate \
-i https://petstore3.swagger.io/api/v3/openapi.json \
-l aspnetcore \
-o /tmp/petstore-v3
-----客户端-----
# 测试 Swagger 2.0 规范生成
swagger-codegen --use-v2 generate \
-i https://petstore.swagger.io/v2/swagger.json \
-l csharp-dotnet2 \
-o /tmp/client-petstore-v2
# 测试 OpenAPI 3.0 规范生成
swagger-codegen --use-v3 generate \
-i https://petstore3.swagger.io/api/v3/openapi.json \
-l csharp-dotnet2 \
-o /tmp/client-petstore-v3
# 检查生成结果
ls /tmp/petstore-v2 /tmp/petstore-v3
ls /tmp/client-petstore-v2 /tmp/client-petstore-v3
查看各版本帮助
swagger-codegen --use-v2 help
swagger-codegen --use-v3 help
语言支持差异
# 列出 v2 支持的语言
swagger-codegen --use-v2 langs
# 列出 v3 支持的语言
swagger-codegen --use-v3 langs
运行效果: