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即可。

浙公网安备 33010602011771号