1. 系統基礎環境準備
確保Ubuntu系統為LTS版本(如22.04、23.10),這類版本提供長期安全更新和穩定性保障,減少因系統版本過新或過舊導致的兼容性問題。安裝前通過sudo apt update && sudo apt upgrade
更新系統包,確保所有基礎組件為最新狀態。
2. JDK版本兼容性處理
Swagger(尤其是Spring Boot集成場景)對JDK版本有明確要求,推薦使用Java 11及以上版本(如OpenJDK 11、Oracle JDK 11)。通過java -version
命令檢查當前JDK版本,若版本低于11,可通過以下命令安裝OpenJDK 11:
sudo apt install openjdk-11-jdk
安裝后通過update-alternatives --config java
切換默認JDK版本。
3. Spring Boot與Swagger版本匹配
若項目基于Spring Boot,需確保Swagger版本與Spring Boot版本兼容。例如:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>2.0.2</version> <!-- 檢查最新版本 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
```。
4. Node.js與npm環境配置
若通過npm安裝Swagger UI(如Express項目集成),需提前安裝Node.js和npm。Ubuntu默認源的npm版本可能較舊,建議使用NodeSource源安裝最新LTS版本:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
安裝后通過node -v
和npm -v
驗證版本(建議Node.js≥16、npm≥8)。
5. 依賴沖突解決
jakarta.servlet
),并添加舊版javax.servlet-api
(同上)。npm config set registry https://registry.npmmirror.com
6. Swagger UI訪問配置
swagger-ui-express
中間件,確保配置正確:const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');
const app = express();
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
app.listen(3000, () => console.log('Server running on port 3000'));
swagger.json
文件:docker run -p 8080:8080 -v $(pwd)/swagger.json:/app/swagger.json swaggerapi/swagger-ui
訪問http://localhost:8080
查看文檔。7. 防火墻與端口設置
若遇到Swagger UI無法訪問的問題,需檢查Ubuntu防火墻(UFW)是否允許對應端口(默認8080、3000):
sudo ufw allow 8080/tcp
sudo ufw allow 3000/tcp
sudo ufw reload
若使用Nginx反向代理,需配置proxy_pass
指向Swagger UI服務端口,并確保location
塊正確轉發請求。