SpringBoot多模块项目打包教程,超详细图文详解!

SpringBoot多模块项目部署

现在的项目开发大多数采取的都是微服务的方法。因此,SpringBoot项目多模块部署是个难题。

下面提供其中的一种部署的方法。比较方便的能够部署在云服务中。

1.确认服务架构

下图是我的项目的一个服务架构

image-20210323234842395

在这个项目里,包含了一个父工程,众多子模块和一个工具模块。其中子模块里每一个都有启动类。而工具模块没有。因此这三者的pom文件不一样。我们根据需要修改,然后用idea的打包工具一键打包就好了。

2.pom文件修改

首先,你需要确定你创建子模块是通过在父工程右键新建而建立的。

image-20210323235212406

并且在创建的时候选择了正确的父工程。

image-20210323235241848

这样可以帮我们剩下修改pom文件的很多精力。我们只需要修改几个关键的地方即可。

第一个:父工程pom文件

我们首先确定是否有子模块依赖在里面,有的话则创建没有问题。

image-20210323235342438

之后我们只需要在合适的位置加上

<packaging>pom</packaging>

这句配置即可,确保父工程是用pom方式打包的。

image-20210323235439385

修改子模块

之后,我们去修改每一个有启动类的子模块。加入下面这段配置:

  <!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
    <build>
        <plugins>
            <plugin>
                <!--该插件主要用途:构建可执行的JAR -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

            <!--设置自己目录下的配置文件-->
            <resource>
                <!--下方resources的文件夹名字要和自己项目的文件夹名确认一致才行 很多人就是忽略了名字不一致 -->
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
    </build>

这段配置提供了一个打包工具,并且能够把项目中的配置文件读取进来。不然的话可能会出现就算是打包了,也无法读取配置文件的情况。

当然,不要忘了在文件开头加上下面这段配置,告知此模块是要打包成jar包。

image-20210323235714456

<packaging>jar</packaging>

打包

在每一个模块完成之后,打开idea的maven工具,一般在窗口最右侧

image-20210323235913997image-20210323235928238

找到我们的父工程,也就是标识了root的。打开lifecycle。先选择clean,再点击package。这样就完成了打包了。

完成后在每个子模块的target文件夹都,都有一个jar包。直接运行就可以啦。

,也就是标识了root的。打开lifecycle。先选择clean,再点击package。这样就完成了打包了。

完成后在每个子模块的target文件夹都,都有一个jar包。直接运行就可以啦。

image-20210324000033561


版权声明:本文为weixin_43314519原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。