SpringBoot 多模塊打包是個坑,各位同行的資料借鑒了不少還是花了一下午才爬出來。
需求背景
已構建一個Spring Boot多模塊項目,項目結構為

image.png
其中:
api模塊和common模塊是基礎模塊,沒有引用其他模塊
dao模塊是Mybatis基礎的模塊,還引用了common模塊
service模塊引用了dao模塊和api模塊
web模塊引用了service模塊,是springboot的啟動入口模塊
配置POM文件
父工程的POM
不要配置build節(jié)點
不要配置build節(jié)點
不要配置build節(jié)點
api模塊

image.png
注意:不配置build節(jié)點,不要手抖加了Maven的插件哦
注意:紅色框住的默認是沒有的,加一下指定父pom文件的位置
common模塊
同api模塊
dao模塊

image.png
注意:這里配置build節(jié)點只是因為dao模塊里有Mybatis的xml文件
service模塊
同api模塊
web模塊
這里是重點,直接貼代碼
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**.*</include>
<include>**/*.*</include><!-- i18n能讀取到 -->
<include>**/*/*.*</include>
</includes>
</resource>
</resources>
<!-- 為jar包取名 -->
<finalName>web-start</finalName>
<plugins>
<!-- 熱布署 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果沒有該項配置,這個devtools不會起作用,即應用不會restart -->
<fork>true</fork>
<mainClass>com.eliteai.et8080.Et8080WebApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依賴的包都打包到生成的Jar包中-->
</goals>
<!--可以生成不含依賴包的不可執(zhí)行Jar包-->
<!-- configuration>
<classifier>exec</classifier>
</configuration> -->
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests> <!--默認關掉單元測試 -->
</configuration>
</plugin>
</plugins>
</build>
到這里結束了,對著項目package就行了??尚姓堻c個贊哈~