服务环境:Linux+JDK1.8+Mysql+Tomcat9.0
开发环境:WindowsServer+Idea+JDK1.8+mysql
一、项目打war包
SpringBoot项目自带内嵌Tomcat服务器,需要先修改pom.xml,找到spring-boot-starter-web依赖修改将内嵌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>
添加Servlet依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
修改SpringBoot项目打包格式为war
<groupId>com.cj.demo</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging> //默认为jar,如果项目创建为war的话不需要修改
重新定义启动类,在原有启动类同级目录下创建新的启动Application,继承SpringBootServletInitializer重写configure方法
builder.sources(Class.xx) //该方法里面的类参数必须指向原来的启动类
Idea下方Terminal执行打包命令 mvn clean package 或者通过Idea右侧的Maven projects工具执行package
等待BUILD SUCCESS后,可以在项目target文件夹下看到打包后的war包
二、Linux 系统安装相关服务软件
安装JDK 、
安装Tomcat 、
安装Mysql
上面的服务软件依赖的安装步骤,网上挺多的,可以自己找一下
三、部署war包
将项目war包通过Xshell软件上传至Linux系统 Tomcat webapps文件夹下,在Tomcat bin目录下执行shell命令./startup.sh启动Tomcat,
Tomcat会自动解压war包,然后就可以通过Ip+:端口+项目war名 访问项目了
PS:说下自己在部署时遇到的问题
1、远程访问Linux系统上的服务时,记得关闭Linux防火墙或者修改防火墙端口权限,不然无法访问;
2、可以正常访问Tomcat主页的情况下,无法访问服务404,看下有没有在端口后加上war包解压后的项目名称,也可以将Tomcat webapps目录下的ROOT文件删除,将war包重新命名为ROOT.war,这样就可以直接通过IP+:端口直接访问项目,不需要加项目名称
3、如果服务采用的远程连接Mysql,这里需要事先修改Mysql host权限,通过命令登录mysql服务,执行update user set host = '%' where user = 'root'; //这里的root指的是配置连接的username
新人,第一次发这个,中间有些地方都是参考网上方法,基本相当于做了一个简单的整理