SpringBoot 多模块打包

96
wesker8080
1.0 2018.08.21 18:50 字数 242

SpringBoot 多模块打包是个坑,各位同行的资料借鉴了不少还是花了一下午才爬出来。

需求背景

已构建一个Spring Boot多模块项目,项目结构为


image.png

其中:
api模块和common模块是基础模块,没有引用其他模块
dao模块是Mybatis基础的模块,还引用了common模块
service模块引用了dao模块和api模块
web模块引用了service模块,是springboot的启动入口模块

配置POM文件

父工程的POM

不要配置build节点
不要配置build节点
不要配置build节点

api模块

image.png

注意:不配置build节点,不要手抖加了Maven的插件哦
注意:红色框住的默认是没有的,加一下指定父pom文件的位置

common模块

同api模块

dao模块

image.png

注意:这里配置build节点只是因为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>
                        <!--可以生成不含依赖包的不可执行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就行了。可行请点个赞哈~

JAVA