上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Maven(五)如何只打包项目某个模块及其依赖模块?

guduadmin251月前

目录

    • 一、背景
    • 二、解决方案
    • 三、补充
      • 3.1 提出疑问
      • 3.2 解答 Maven(五)如何只打包项目某个模块及其依赖模块?,第1张

        一、背景

        在 SpringCloud 微服务框架下,会存在多个模块。当我们需要对其中某一个服务打包的时候,需要将该服务依赖的模块一起打包更新,如果项目比较小的话我们可以直接将项目中的所有模块进行 clean install 即可。

        但是当项目运行一段时间后,项目中的代码量会变得很多,每个模块的打包时间也会越来越长,将所有模块进行打包的方法已经不再可取,那么 如何才能在打包的时候只将所需的模块及其依赖的模块进行打包呢?


        二、解决方案

        我们使用 mvn 命令搭配 -pl 和 -am 这两个参数即可解决上面的问题:

        • -pl 参数:或 --projects,指定了要构建的模块列表,Maven 将仅对这些指定的模块进行构建(多个用英文逗号分隔);
        • -am 参数:或 --also-make,表示如果目标模块依赖于其他模块,那么在构建目标模块之前,Maven 会先构建所有直接依赖于目标模块的子模块。

          注意: -am 并不会递归地构建所有简介依赖的模块,之构建直接依赖于目标模块的子模块。

          命令示例:

          mvn clean package -am -pl com.demo:springboot-demo
          

          三、补充

          3.1 提出疑问

          看完上面这种方式,可能会有这样一个疑问:Maven 打包的时候不应该是先从本地仓库拉取么?我这里使用 mvn package 而不是 mvn install,通过 -am 打包好的直接依赖会打到新的目标模块包中吗?

          3.2 解答

          通过 -am 打包好的直接依赖会自动打到新的目标模块包中的。

          因为,当所有的直接依赖模块都成功构建完成后,Maven 会对目标模块执行打包操作(如 jar、war 等),并 将直接依赖模块的输出结果作为当前模块的依赖库进行引用和打包

          整理完毕,完结撒花~ 🌻

网友评论

搜索
最新文章
热门文章
热门标签
 
 周易解梦全集大全  自己躲过一劫  解梦自查下载周公解梦