Springboot 多module打包方案示例详解

 更新时间:2024年10月11日 15:45:30   作者:罗小爬EX  
在使用Springboot进行多模块项目开发时,可能会遇到模块间依赖不存在的问题,本文介绍了两种主要的解决方案,这些方法有助于生成可执行的jar包,并确保模块间正确依赖,适用于多层项目结构中的有效管理和打包,感兴趣的朋友跟随小编一起看看吧

Springboot 多module打包问题(依赖不存在)解决方案:

参考项目结构如下:

说明: web模块为最终的启动模块,web->service->manager->dao->entity+common

方案1(实际采用):

(1)在最外层父pom:

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <!-- 是否过滤资源文件,替换maven属性 - 不过滤,否则过滤xlsx文件导致乱码,XSSFWork读取格式异常 -->
            <filtering>false</filtering>
            <includes>
                <include>**/*</include>
                <include>mapper/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>

(2)其他子模块POM(非Springboot启动类: common,entity,dao,manager,service):

无需指定<build/>

(3)Springboot启动类子模块POM(web):

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <configuration>
            <mainClass>com.xxx.MxVehiclePartsApplication(此处替换为相应Springboot启动类)</mainClass>
         </configuration>
         <executions>
            <execution>
               <goals>
                  <goal>repackage</goal>
               </goals>
            </execution>
         </executions>
      </plugin>
   </plugins>
</build>

执行mvn package后,可在启动模块(web)target下看到*.jar即为可执行的jar包;

方案2:

(1)在最外层父pom:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.xxx.MxVehiclePartsApplication(此处替换为相应Springboot启动类)</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <!-- 是否过滤资源文件,替换maven属性 - 不过滤,否则过滤xlsx文件导致乱码,XSSFWork读取格式异常 -->
            <filtering>false</filtering>
            <includes>
                <include>**/*</include>
                <include>mapper/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>
 

(2)其他子模块POM(非Springboot启动类: common,entity,dao,manager,service):

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <classifier>exec</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>

(3)Springboot启动类子模块POM(web):

无需指定<build/>

到此这篇关于Springboot 多module打包方案的文章就介绍到这了,更多相关Springboot module打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java微信公众号推送模版消息的步骤示例详解

    Java微信公众号推送模版消息的步骤示例详解

    模板消息是一种向用户发送通知的服务,广泛用于订单状态更新、服务提醒等场景,下面,我将详细介绍如何使用Java结合微信官方提供的API来实现模板消息的推送,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • Java实现彩色图片转换为灰度图片的示例代码

    Java实现彩色图片转换为灰度图片的示例代码

    将彩色图片转换为灰度图片是图像处理中的常见操作,通常用于简化图像、增强对比度、或者进行后续的图像分析,本项目的目标是通过Java实现将彩色图片转换为灰度图片,需要的朋友可以参考下
    2025-02-02
  • SpringBoot中使用拦截器拦截跳转登录的两种实现方法

    SpringBoot中使用拦截器拦截跳转登录的两种实现方法

    拦截器(Interceptor)是Spring框架提供的一种机制,用于在请求的生命周期中插入自定义逻辑,如身份验证、日志记录等,本文将详细介绍两种在SpringBoot中使用拦截器来控制用户登录并跳转到指定页面的方法,需要的朋友可以参考下
    2024-11-11
  • spring cloud 阿波罗 apollo 本地开发环境搭建过程

    spring cloud 阿波罗 apollo 本地开发环境搭建过程

    Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性
    2018-01-01
  • springmvc+mybatis 做分页sql 语句实例代码

    springmvc+mybatis 做分页sql 语句实例代码

    本文通过一段实例代码给大家介绍了springmvc+mybatis 做分页sql 语句的方法,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-07-07
  • 查看java对象所占内存大小的方法

    查看java对象所占内存大小的方法

    这篇文章主要为大家介绍了如何查看java对象所占内存大小的方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java设计模式之单例设计模式解析

    Java设计模式之单例设计模式解析

    这篇文章主要介绍了Java设计模式之单例设计模式解析,设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式,设计模式免去我们自己再思考和摸索,需要的朋友可以参考下
    2023-11-11
  • Java中的ArrayList容量及扩容方式

    Java中的ArrayList容量及扩容方式

    这篇文章主要介绍了Java中的ArrayList容量及扩容方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java中的return关键字使用解读

    java中的return关键字使用解读

    这篇文章主要介绍了java中的return关键字使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Java-String类最全汇总(下篇)

    Java-String类最全汇总(下篇)

    这篇文章主要介绍了Java-String类最全汇总(下篇),本文章内容详细,本模块分为了两部分,本次为下篇,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2023-01-01

最新评论