这里的打包方式参考了这篇文章:springboot+maven+idea打包及部署到tomcat服务器(腾讯云)
一、项目版本
涉及到的版本:
-
JDK1.8 (idea中,查看项目jdk版本的方式如下图:)
-
springboot内置tomcat
-
服务器中的tomcat版本:9.0.16
二、项目打包配置(war包)
1、如果要打war包,必须在在 pom.xml 中加上该行代码:
<packaging>war</packaging>
添加位置如下所示:
2、pom.xml中继续加入以下代码:该代码用于spring boot中内嵌的tomcat包依赖排除,不然会产生冲突。
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
添加位置如下所示:
3、pom.xml中继续加入以下依赖:
(该代码用于开发时使用spring boot内嵌tomcat进行调试,真正生产时使用外部tomcat。)
(scope里的provided意思是只用于开发及测试阶段。)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
添加位置如下所示:
4.找到项目中的application,然后让该类继承SpringBootServletInitializer,然后重写configure方法
代码如下:
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(你项目的apprication类名.class);
}
在idea中操作位置如下:
到这里,目前项目中需要打包配置的步骤已经完成,接下来进行打包。
三、idea打包
1、点击idea右边的maven——> 你的项目名——>Lifecycle——>双击package
双击package后就会开始打包,控制台会打印打包的过程信息,主要看最后是不是显示成功。如果成功,说明前面步骤没问题。
【我当时打包遇到了一些问题,主要是maven的plugins版本出错,在网上搜索了一下,在pom.xml中更改了版本,再运行就没问题了。】
2、在项目根目录中打开target文件夹,打好的包就在该目录下,名称为【 xxxx.war】,首先把名字改一下,改成ROOT.war(这个不改也行),
改名字为ROOT主要是不用打项目名,在服务器上测试直接可以localhost加端口号加你的项目登录路径就能打开系统页面。
四、将war包部署到tomcat
1、将war包移动到tomcat目录下的webapps中,不需要解压,不需要任何操作。
如果webapps目录中有ROOT文件夹,删除即可(如果没有将war包名称更改为ROOT,则不需要删除ROOT文件夹)。
2、启动tomcat,启动方法如下所示,选择bin目录,点击 startup.bat:
( 跑完看一下控制台,看看是否有报错,然后在服务器的本地上进行测试)
五、在网页中打开项目
如果改名字为ROOT.war,在服务器上测试直接可以localhost+端口号+你的项目登录路径就能打开系统页面。
如:localhost:8080/login
如果没改名字,还是原来项目名.war,在服务器上测试直接可以localhost+端口号+你的项目名+登录路径就能打开系统页面。
如:localhost:8080/项目名/login
这里需要注意,端口号必须是你在tomcat中设定的端口号,一般默认是8080,但是我曾经把tomcat端口号改成了8888,测试的时候就应该使用8888。一开始这里出了问题。
tomcat端口号的查看方式,conf—>server.xml,如下图所示: