多个module项目打war包的方式
默认的打包方式为jar,如果要修改成war需要修改以下内容
1. root项目中,修改pom.xml文件中的打包方式为pom
<packaging>pom</packaging>
2.其他模块修改
多模块项目中,主启动类所在的模块是web模块,父模块是root模块,除了这两个模块之外,其余的模块修改pom.xml文件
<packaging>jar</packaging>
3.web模块修改
修改打包方式 为war,并添加maven插件
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
去除内置tomcat,如果想要在本地正常启动,可以增加tomcat,修改<scope>为provided,如果没有导入
spring-boot-starter-web依赖,可以查一下依赖树,看看是不是因为导入的其他依赖中内置了tomcat,排除即可,因为有的框架会使用自己整合的maven依赖,不一定都是
直接使用spring-boot-starter-web
<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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
修改主启动类,继承SpringBootServletInitializer并重写configure方法
@SpringBootApplication()public class DemoApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(DemoApplication.class); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class); } }
然后就可以打包了,IDEA的话 ,右侧栏可以进入maven界面,看到项目中的每个模块,选择root模块 或者web模块,在Lifecycle中选择package命令,双击,所需要的war包会在web模块下target目录中生成。
浙公网安备 33010602011771号