多模块的springboot项目发布指定模块的脚本方式

 更新时间:2025年01月14日 09:26:17   作者:左直拳  
该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本,只使用`mvn clean install`命令,可以快速发布指定模块及其依赖的模块

多模块的springboot项目发布指定模块的脚本

我有一个多模块的Spring Boot项目,里面有基础模块,有业务模块,业务模块依赖一些基础模块。发布的时候,如果单独将某个模块发布,一般会报错。

所以我都是整个项目,无论多少个模块,不管3721,全部发布一遍。

这样做成功是成功了,但时间比较长,要几分钟才能发布完。

次数一多,浪费的时间就很可观了。

1、不计成本地全部发布

其实问题主要是出在我发布的脚本上。

我原先的发布脚本是这样的,写在一个批处理文件里(该文件在项目的根目录下):

mvn clean install
mvn clean package -Dmaven.test.skip=true  -Ppro

运行的结果就是全部模块都发布了一遍。

这个脚本我也不知道是从哪里抄过来的,总之就是抄过来的,我并不理解。

问了AI之后才知道,其实这两句都是发布的,没必要两句都用。其中,

1)mvn clean install

先清理旧的构建产物,然后编译、测试、打包项目,并将打包好的文件安装到本地Maven仓库。

2)mvn clean package -Dmaven.test.skip=true -Ppro

清理旧的构建产物,编译项目并跳过测试,打包项目为归档文件,并使用名为 pro 的Profile进行构建。

简单来说,这两句都是全部模块都发布,而且第一句最猛,不单止发布,还要打包到本地的仓库里。

2、指定模块发布

以下是一个指定发布模块,同时模块依赖的模块也一并发布。

当当当:

mvn clean package -pl projectservers/bullshit-warning-server -am -Dmaven.test.skip=true -Ppro

这条命令的完整含义是:

  • 清理旧的构建产物(clean)。
  • 编译并打包 projectservers/bullshit-warning-server 模块(package),并且跳过测试(-Dmaven.test.skip=true)。
  • 同时构建该模块所依赖的所有模块(-am)。 使用名为 pro 的Profile进行构建(-Ppro)。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringCloud Eureka的使用教程

    SpringCloud Eureka的使用教程

    这篇文章主要给大家介绍了关于SpringCloud Eureka使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java 数组转List的四种方式小结

    Java 数组转List的四种方式小结

    最近看了下数组转List的实现方法,总共有4种,本文就详细的介绍一下,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • java 压缩图片(只缩小体积,不更改图片尺寸)的示例

    java 压缩图片(只缩小体积,不更改图片尺寸)的示例

    这篇文章主要介绍了java 如何压缩图片体积,帮助大家更好的利用Java处理图片,应对特殊情况,感兴趣的朋友可以了解下
    2020-10-10
  • Java深入浅出讲解String类常见方法

    Java深入浅出讲解String类常见方法

    在C语言中,如果要表示字符串而且对字符串进行操作的话,依靠的是数组和指针,而Java中提供了String类用来专门表示字符串,String类中常见的方法,以及一些细节是本篇重点
    2022-04-04
  • Spring Boot打包部署和环境配置详解

    Spring Boot打包部署和环境配置详解

    这篇文章主要介绍了Spring Boot打包部署和环境配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Java Date 转 UTC 时间常见方法

    Java Date 转 UTC 时间常见方法

    在Java中处理日期时间转换到UTC是一个常见需求,尤其是在全球化应用中,下面我将详细介绍多种实现方式,并提供一个完整的转换工具示例,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • Mybatis CachingExecutor二级缓存使用示例详解

    Mybatis CachingExecutor二级缓存使用示例详解

    这篇文章主要介绍了 Mybatis的CachingExecutor与二级缓存使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Springboot整合Redis实现超卖问题还原和流程分析(分布式锁)

    Springboot整合Redis实现超卖问题还原和流程分析(分布式锁)

    最近在研究超卖的项目,写一段简单正常的超卖逻辑代码,多个用户同时操作同一段数据出现问题,纠结该如何处理呢?下面小编给大家带来了Springboot整合Redis实现超卖问题还原和流程分析,感兴趣的朋友一起看看吧
    2021-10-10
  • 轻松掌握Java代理模式

    轻松掌握Java代理模式

    这篇文章主要帮助大家轻松掌握Java代理模式,什么是静态代理?感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Java中线程中断停止的三种实现方法

    Java中线程中断停止的三种实现方法

    本文主要介绍了Java中线程中断停止的三种实现方法,包括stop()方法但已废弃且不安全,推荐使用volatile标志位或interrupt中断机制,具有一定的参考价值,感兴趣的可以了解一下
    2025-06-06

最新评论