父工程:
1. 只有一个pom文件,做一些统一的jar包版本管理
2. 打包方式pom
3. <modules>下管理子工程模块
4. 创建时采用idea的maven构建
注意: 父工程pom可以不配置任何打包插件, 但如果配置的话一定不能有spring-boot-maven-plugin插件,否则这个插件就将传递到每一个子模块中,打包会出错
子工程-application主模块:
1. 创建时采用idea的springboot构建
2. 打包方式指定jar
3. pom文件中必须引入spring-boot-maven-plugin打包插件,并且要配置将所依赖的jar包全都打到这一包中,如果在其他模块中引入了spring-boot-maven-plugin将会每个模块都单独打成一个包,无法拉取到启动类所在包中
![]()
<build>详细配置:
<build>
<plugins>
<!--打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 如果没有该项配置devtools不会起作用,即应用不会restart -->
<fork>true</fork>
<!--支持静态文件热部署-->
<addResources>true</addResources>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.sky.boot.SkyBootApplication</mainClass>
<!-- spring-boot-maven-plugin这个插件打包的Jar包可以直接运行,但是不可依赖, 添加如下配置使其可被依赖 -->
<!--<classifier>execute</classifier>-->
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!--打包规则,打包时将resources文件夹打包进去-->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
</resource>
<!--保证mapper文件夹中的.xml文件可以被编译-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
子工程-common模块:
1. 创建时采用idea的maven或者springboot构建都可以
2. 子模块一般就是一些通用工具类,不含有main主启动类
3. 打包方式指定jar
4. pom中无需添加打包插件
![]()