Java项目打包部署核心是生成含依赖、配置和启动逻辑的可执行包,Spring Boot推荐fat jar,传统Web应用用WAR,微服务可结合Docker;需通过Maven/Gradle插件构建,外部化配置,Linux下用nohup或systemd部署。

Java项目打包成可部署到服务器的形式,核心是生成一个包含所有依赖、配置和启动逻辑的可执行包,主流方式是使用Maven或Gradle构建工具配合插件(如maven-jar-plugin、spring-boot-maven-plugin)生成JAR或WAR文件。
明确项目类型与目标部署方式
先确认你的项目是否基于Spring Boot,还是传统Servlet Web应用:
- Spring Boot项目:推荐打成fat jar(含内嵌Tomcat),直接用
java -jar xxx.jar运行,适合Linux服务器快速部署 - 传统Web项目(如基于Servlet/JSP):打成WAR包,部署到外部Tomcat、Jetty等容器中
- 微服务或需Docker化场景:可额外集成Dockerfile,把JAR包封装进镜像
使用Maven配置可执行JAR(以Spring Boot为例)
在pom.xml中确保已引入spring-boot-maven-plugin,并启用repackage目标:
org.springframework.boot spring-boot-maven-plugin com.example.MyApplication repackage
执行mvn clean package后,会在target/目录下生成一个可直接运行的JAR文件(名字类似myapp-1.0.0.jar)。
立即学习“Java免费学习笔记(深入)”;
处理配置与外部化参数
不要把数据库地址、密码等敏感配置写死在代码或JAR包内:
- 将
application.properties或application.yml放在JAR同级目录,Spring Boot会自动优先加载 - 启动时可通过
--spring.config.location=file:./config/指定外部配置路径 - 生产环境建议用
spring.profiles.active=prod激活对应配置,并配合环境变量或启动参数传入关键值(如-Dspring.datasource.password=xxx)
部署到Linux服务器的基本操作
假设你已通过FTP或scp上传了JAR包(如app.jar)到服务器/opt/myapp/目录:
- 确保服务器已安装匹配版本的JDK(如Java 17),执行
java -version验证 - 赋予执行权限(非必须,但建议):
chmod +x app.jar - 后台启动并输出日志:
nohup java -jar app.jar --spring.profiles.active=prod > app.log 2>&1 & - 查看运行状态:
ps -ef | grep app.jar;查看实时日志:tail -f app.log
更稳定的方案可用systemd写个服务单元文件,实现开机自启、崩溃重启等能力。
基本上就这些。打包本身不复杂,关键是理清依赖、配置分离和运行环境适配三个环节。










