如果不知道如何创建多模块项目,可以参考???还没写呢,写了再加上连接
照着以下步骤一步一步做就可以:
父亲pom需要设置packaging为pom
<packaging>pom</packaging>
2 . 核心代码模块,也就是启动类(application)所在的模块,需要引入插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3. 设置核心代码模块的打包方式为war,
<!--打包方式-->
<packaging>war</packaging>
其他依赖模块如有需要,可以设置为jar的打包方式。实测不设置也会默认打包成jar包
<packaging>jar</packaging>
4. 设置自定义打包名字(这个是打包出来指定名字的关键),如果你知道其他操作,看到这里就可以快跑了。
<build>
<!-- 这里写你想打包成什么的名字,比如spring-demo。打包出来就会是spring-demo.war-->
<finalName>spring-demo</finalName>
</build>
5. 然后就是我们的依赖,Application所在的模块你不可能不引入starter-web吧,然后就是单独引入tomcat依赖,
引入starter-web依赖时,可以排除其内置的tomcat服务器,也就是springboot自带的tomcat容器,但是实测不排除也没影响,看个人需要
<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>
<!-- 加入tomcat依赖 ,这个一定要有-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
6. 依赖解决了,我们需要改写启动类:
主要就是继承SpringBootServletInitializer这个类,重写他的configure方法:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
/**
* 重写configure方法。
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
7. 在web的目录下添加webapp/WEN-INF/web.xml(没有webapp文件夹就创建一个)
不加的话打包可能会报如下的错:
意思就是没有webxml
所以我们需要在main下面加上webapp/WEN-INF/web.xml
这个位置:
web.xml的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<!--指定项目名称,-->
<display-name>spring-demo</display-name>
</web-app>
8. 那么现在我们就可以通过idea或者是指令来打包项目了。
root或者web下的都可以,如果还是不行可以尝试用install
没有指令的介绍了,因为小白我不会(╥﹏╥)