SpringBoot项目在服务器上的部署过程
注意:打包前,确保你的pom文件中引入了spring-boot-maven-plugin插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
一、jar包部署
1.打jar包
在idea中打开SpringBoot项目,点击Project Structure。

在弹出页面中选择。

选好项目和启动类,点击ok。

在idea上方的菜单栏中找到Build,点击Build Artifacts,在弹出选项中选择自己刚创建的项,点击build。


编译成功后,在左侧的项目展开栏中的out文件夹里,就可以看到.jar为后缀的文件
2.部署
1)上传jar文件到linux上 。
2)在linux的jar文件所在目录,敲命令:
nohup java -jar <jar包名>.jar >log.txt 2>&1 &
项目即以后台运行的方式跑起来了,如无意外,浏览器访问:ip地址:项目端口号就可以看到你运行的项目。
二、war包部署
1.打war包
参考博客:https://www.cnblogs.com/superman-21/p/13018942.html
1)pom文件声明打包格式
<packaging>war</packaging>
2)移除springboot自带的tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3)添加server-api依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
4)添加Servlet初始化器
方式一:在Springboot启动类的同级目录下创建一个类,继承SpringBootServletInitializer 抽象类,代码如下
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向Springboot启动类
return builder.sources(Springboot01Application.class);
}
}
方式二:直接让启动类继承SpringBootServletInitializer ,重写configure方法,代码与方式一相同
5)打包
打开maven工具栏

点击package(如果项目结构栏中残留有之前打包留下的target目录,可以先clean下)
编译完成后,即可在左侧的项目结构栏的target目录下找到war文件
2.部署
将war包放到tomcat的webapp目录下,运行tomcat就可以访问了
ip地址:8080/war包名/访问首页的url
部署后运行项目潜在的问题
部署完成后,可能出现静态资源或controller无法访问的问题,看了一位博主的文章,才知道是资源引用路径和controller路径错误引起的:这是由于tomcat上部署的项目,访问任何任何资源的路径都得以项目名打头,解决方法是:①静态资源href后的引用路径不能是绝对路径,即不以/开头即可②controller的路径都需要添加项目名。
详情参考博客:https://blog.csdn.net/u012149181/article/details/80598246
附言
如有错误之处,还望各位指出