SpringBoot项目部署服务器上线(war包)
传统的部署方式:将项目打成war包,放入tomcat 的webapps目录下面,启动tomcat,即可访问!
1、将打包方式换成war,默认是jar,需要修改一下
2、移除tomcat依赖或者将springboot自带的tomcat依赖scope改为provided
//移除tomcat依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat插件 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> //或者 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
provided就是排除的意思。
3、启动类继承SpringBootServletInitializer实现configure方法:
1 @SpringBootApplication 2 public class Application extends SpringBootServletInitializer { 3 4 public static void main(String[] args) { 5 SpringApplication.run(Application.class, args); 6 } 7 8 @Override 9 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 10 return builder.sources(Application.class); 11 } 12 }
4、使用外部Tomcat部署访问的时候,application.properties(或者application.yml)中配置的
server.port=
server.servlet.context-path=
将失效,请使用tomcat的端口,tomcat,webapps下项目名进行访问。
为了防止应用上下文所导致的项目访问资源加载不到的问题,建议pom.xml文件中<build></build>标签下添加<finalName></finalName>标签:
1 <build> 2 <!-- 应与application.properties(或application.yml)中context-path保持一致 --> 3 <finalName>war包名称</finalName> 4 <plugins> 5 <plugin> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-maven-plugin</artifactId> 8 </plugin> 9 </plugins> 10 </build>
5、clean----package 打成war包
将项目打成war包,部署到服务器的tomcat中,放到tomcat下的webapps包里面。
然后cd到tomcat的bin目录下,启动startup.bat即可。
若要替换代码,先终止之前运行的项目,ps -ef | grep 对应的jar包
如果替换前端的js或者html文件,可以直接到服务器上对应的文件夹将具体文件替换就行,不需要重启服务。
如果是替换java代码,简单的也可以直接去服务器上替换对应的class文件,但需要重启服务。
备份可以用cp a1 a2
然后启动startup.bat即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY