记录一下自己学习springboot项目进行打包时的步骤以及遇到的一些小问题
- 对于springboot的打包过程可以分为以及几个步骤(基于多模块项目进行打包)
- 修改pom文件中的默认打包方式,注意不是修改 root 中的pom文件,而是对外的接口层(api/controller)中的pom文件的打包方式,修改为 war 方式
# 默认为pom
<package>war</package>
2.去除springboot中自带的tomcat容器,然后添加servlet-api依赖
<!--发布时默认的tomcat需要去除掉 我们需要指明 servlet将由运行时环境提供-->
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
<!-- 引入servlet的api并且说明会有运行的容器提供-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
3.创建一个启动类,让tomcat来帮我们启动spring程序
public class WarStarterApplication extends SpringBootServletInitializer {
/**
* 打包发布时,需要重载实现这个方法
* @param builder
* @return
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
4.修改项目中涉及到的位置信息啥的,然后将打包好的 war 包复制到tomcat中的webapps目录下就好,然后观察logs中的日志是否有报错信息。
注意:对于pom中引入的依赖,一定需要明确配置项的含义,对于不清楚的配置项尽量弄明白,不需要的一定要删掉。例如option,在AOP依赖中配置为了true,结果tomcat日志中一直显示ProceedingJoinPoint找不到...搞了好久才弄好...
<!-- 表示一个可选依赖,两个项目之间依赖不传递-->
<optional>true</optional>
网友评论