SpringCloud项目将某个子模块改成以war的形式打包,需要修改的地方
- 在GAV后面添加 《packaging》 war 《/packaging》
在GAV后面添加 《packaging》 war 《/packaging》
- 添加war打包方式
<packaging>war</packaging>
添加之后项目会报错,工程中出现小红叉;这个不用管它,不影响。
- 排除掉springboot内嵌的tomcat
第 1 方式:使用exclusion排除
<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>
<!-- 排除 Spring-boot-starter 默认的日志配置 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
第2种方式:将依赖的范围《scope》设置为provided
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
- 在启动类中添加,如下代码
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder springApplicationBuilder) {
return springApplicationBuilder.sources(Application.class);
}
}
-
直接自动使用SpringCloud的打包插件(在父pom里面),
无须
手动添加,否则,会重复打包,生成xxx.war.original文件
-
打包过程中可能会报如下错误,不用管它,不影响
- 将打好的war包放到tomcat的webapps目录下,启动tomcat,可能会报错,可参考:
https://blog.csdn.net/qq_29025955/article/details/130730372