1. 准备Linux环境基础依赖
在Linux系统中,首先需要安装Swagger运行所需的Java环境和构建工具(如Maven/Gradle),这是后续步骤的基础。
sudo apt update && sudo apt install -y openjdk-11-jdk
sudo apt install -y maven
验证安装:java -version
(显示Java版本)、mvn -v
(显示Maven版本)。2. 配置项目Swagger文档生成
根据项目框架(如Spring Boot)添加Swagger依赖,并创建配置类启用文档生成。
pom.xml
中添加以下依赖(以SpringFox为例):<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
build.gradle
中添加:dependencies {
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
}
SwaggerConfig.java
),启用Swagger并指定扫描范围:import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller")) // 替换为你的控制器包路径
.paths(PathSelectors.any())
.build();
}
}
若使用SpringDoc(更适配OpenAPI 3.0),可替换为springdoc-openapi-ui
依赖,并添加@EnableOpenApi
注解。3. 集成持续集成工具(以Jenkins为例)
通过Jenkins实现代码提交后的自动化构建、文档生成与部署。
Jenkinsfile
中定义流程(以Spring Boot项目为例):pipeline {
agent any
tools {
maven 'maven-3.8.6' // 配置Maven环境(需提前在Jenkins中安装)
jdk 'jdk11' // 配置Java环境
}
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/your-repo/your-api-project.git' // 替换为你的代码仓库
}
}
stage('Build') {
steps {
sh 'mvn clean package' // 编译项目并打包
}
post {
success {
junit '**/target/surefire-reports/*.xml' // 发布测试报告
}
}
}
stage('Generate Swagger Docs') {
steps {
sh 'mvn springfox:swagger2' // 生成Swagger文档(需配置swagger-maven-plugin)
sh 'cp -r target/classes/static/swagger-ui/* /var/www/html/swagger/' // 将文档复制到Web服务器目录(如Nginx)
}
}
stage('Deploy') {
steps {
sh 'scp target/your-api-project.jar user@production-server:/opt/app/' // 部署到生产环境
sh 'ssh user@production-server "systemctl restart your-api-service"' // 重启服务
}
}
}
}
关键说明:
springfox:swagger2
:Maven插件,用于生成Swagger JSON文档;4. 验证Swagger UI访问
部署完成后,通过浏览器访问Swagger UI(如http://your-production-server/swagger-ui.html
),确认是否能正常显示API文档。若遇到跨域问题,可在Spring Boot项目中配置CORS:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
5. 持续部署与监控
Deploy
阶段,通过scp
或rsync
将构建产物(如JAR文件)复制到目标服务器,使用ssh
执行重启命令(如systemctl restart your-api-service
)。