在服务器上部署 Java 项目,需要根据项目的具体类型(如 Spring Boot、普通 Java Web 应用等)和运行方式(如使用 Tomcat、Jetty、内嵌容器、Docker 等)来决定所需的依赖。以下是一个通用的指南,适用于大多数 Java Web 项目(尤其是 Spring Boot 项目)。
🧩 一、基础环境依赖
1. Java 运行环境
- 安装 JDK 或 JRE(推荐安装 JDK)
- 版本需与你的项目兼容:
- Spring Boot 2.x 通常使用 Java 8~17
- Spring Boot 3.x 需要 Java 17 及以上
# 查看 Java 是否已安装
java -version
如果未安装:
Ubuntu/Debian:
sudo apt update
sudo apt install openjdk-17-jdk
CentOS/RHEL:
sudo yum install java-17-openjdk-devel
📦 二、构建工具依赖(可选)
如果你是通过源码打包部署(如从 Git 拉取代码并编译),你需要以下工具:
1. Maven
sudo apt install maven # Debian/Ubuntu
sudo yum install maven # CentOS
2. Gradle
sudo snap install gradle --classic
⚙️ 三、运行时依赖(视项目而定)
1. 数据库驱动
如果你的项目连接了数据库,需要安装对应的驱动(一般项目会自带,但某些情况可能需要手动添加):
| 数据库 | 依赖包 |
|---|---|
| MySQL | mysql-connector-java |
| PostgreSQL | postgresql |
| Oracle | ojdbc8.jar(需手动下载) |
2. 消息中间件
如果项目中使用了 Kafka、RabbitMQ、Redis 等,需要确保这些服务已安装或可用。
🏢 四、Web 服务器 / 容器依赖
1. Tomcat(传统 WAR 包部署)
- 下载地址:https://tomcat.apache.org/
- 部署
.war文件到webapps目录下 - 启动脚本:
bin/startup.sh
注意:Spring Boot 项目默认是内嵌 Tomcat 的 jar 包,除非你配置为 war 包部署。
2. Nginx(反向 / 静态资源)
sudo apt install nginx # Debian/Ubuntu
sudo yum install nginx # CentOS
3. 其他容器
- Jetty
- Undertow(常用于 Spring Boot)
🐳 五、Docker 部署(可选)
如果你使用 Docker 来部署 Java 项目:
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
然后你可以构建镜像或运行现成镜像:
docker build -t myapp .
docker run -d -p 8080:8080 myapp
🔐 六、防火墙与端口开放
确保你的服务器开放了对应端口(如 8080、80、443):
sudo ufw allow 8080/tcp
或者使用 firewalld(CentOS):
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
🧪 七、系统服务管理(可选)
可以将你的 Java 应用注册为系统服务(systemd),便于管理启动、停止、开机自启。
示例:创建 /etc/systemd/system/myapp.service
[Unit]
Description=My Spring Boot App
[Service]
User=ubuntu
ExecStart=/usr/bin/java -jar /home/ubuntu/app.jar
SuccessExitStatus=143
StandardOutput=file:/var/log/myapp.log
StandardError=file:/var/log/myapp.err
[Install]
WantedBy=multi-user.target
然后启用服务:
sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp
✅ 总结:部署一个典型 Spring Boot 项目所需依赖
| 类型 | 内容 |
|---|---|
| Java 环境 | JDK 8~17 |
| 构建工具 | Maven / Gradle(开发阶段) |
| 数据库驱动 | mysql-connector-java(或其他) |
| 容器 | Tomcat(WAR 包)或直接运行 jar(内嵌容器) |
| 服务器工具 | Nginx、systemd、防火墙配置 |
| Docker | 如果使用容器化部署 |
如果你提供具体的项目类型(比如是否是 Spring Boot、是否打成 jar/war、是否使用数据库等),我可以给出更精确的依赖清单。欢迎补充!
CLOUD技术博