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

这篇具有很好参考价值的文章主要介绍了Maven(五)如何只打包项目某个模块及其依赖模块?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Maven(五)如何只打包项目某个模块及其依赖模块?,# Maven,maven,java,开发语言

一、背景

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 等),并 将直接依赖模块的输出结果作为当前模块的依赖库进行引用和打包

整理完毕,完结撒花~ 🌻文章来源地址https://www.toymoban.com/news/detail-818781.html

到了这里,关于Maven(五)如何只打包项目某个模块及其依赖模块?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何将安卓 Gradle 模块打包发布到本地 Maven 仓库

    笔者的运行环境: Android Studio Flamingo | 2022.2.1 Android SDK 33 Gradle 8.0.1 JDK 17   Android 的 Gradle 项目与一般的 Gradle 项目是不同的,因此对将 Gradle 模块打包发布到本地 Maven 仓库来说,对普通 Gradle 项目适用的方法,对 Android 项目是不适用的。   因为普通 Gradle 项目打包生成的是

    2024年02月02日
    浏览(42)
  • Maven高级---聚合(如何将SpringBoot项目打包上线)

    目录 Maven集合要解决的问题 解决办法-Maven聚合 总结 情景:项目已经开发完毕,要将该management工程打包上线. 此时我们点击Maven的打包按钮 但结果是构建失败,提示如下 原因:执行打包时他会在本地仓库中寻找模块,然而Maven本地仓库中并没有这两个模块的jar包,因此就失败了. 此时

    2024年02月07日
    浏览(34)
  • maven打包所有依赖,对外提供sdk.jar

    maven打包所有依赖 如何让引入自己sdk的spring扫描sdk下的类 新建配置类(@Import注解可以加载指定类至spring容器中) 新建如下目录以及文件  

    2024年02月11日
    浏览(27)
  • Maven高级-分模块开发&依赖管理

    目标 理解并实现分模块开发 (1)按照功能拆分 我们现在的项目都是在一个模块中,比如前面的SSM整合开发。虽然这样做功能也都实现了,但是也存在了一些问题,我们拿银行的项目为例来聊聊这个事。 网络没有那么发达的时候,我们需要到银行柜台或者取款机进行业务操作

    2023年04月09日
    浏览(32)
  • Maven工程中排除依赖打包的两种方式

    在Maven工程中,我们常需要依赖各种第三方库完成项目开发,但在最终交付时,往往不希望将这些依赖本身打包到产品中,以减小发布包体积。此时,可以通过以下两种方式实现: 这适用于那些编译时需要,但运行时会由服务器或运行环境提供的库,典型的如Servlet API、JDBC驱动等。可以

    2024年02月16日
    浏览(32)
  • 【maven】通过profiles实现:怎样激活某个仓库、同时加载多个profile、不同环境加载不同依赖jar

    Maven中的profile是一组可选的配置,可以用来设置或者覆盖配置默认值。有了profile,你就可以为不同的环境定制构建。 profile可以在pom.xml中和maven的setting.xml文件中配置,如下: 在上述示例中,我们定义了一个名为\\\"nexus\\\"的profile,并在其中设置了一个名为\\\"my-repo\\\"的Maven仓库。该仓

    2024年02月13日
    浏览(31)
  • Maven 生成(打包)带有依赖的可以直接执行的一个 jar 包

    在pom中增加如下内容      运行打包命令:mvn clean compile assembly:single

    2024年02月13日
    浏览(25)
  • maven根据操作系统的不同打包时引入不同的依赖(jar)

    在进行java开发时经常遇到一种情况,就是 windows 下和 linux 下需要引入的jar包是不一样的。 比如说我们需要使用java来操作 OpenGL 库,我们就需要通过 maven 引入 JOGL 的依赖, 然而在 window 下和在 linux 下需要引入 JOGL 的依赖是不一样的: 在 window 下,需要引入 JOGL 的 -win 版本的

    2024年02月09日
    浏览(33)
  • <Maven>项目依赖导入Maven本地仓库命令

    项目工程pom.xml文件打开:查看报错的依赖, 将jar包放在D盘(或者其它路径都可)根目录下,在windows黑窗口执行以下命令; 举例:jar包名称: 1.api-1.0-SNAPSHOT102.jar 2.coms-cache-1.0-SNAPSHOT.jar 命令:

    2024年02月14日
    浏览(30)
  • Maven 打包时,依赖配置正确,但是类引入出现错误,一般是快照(Snapshot)依赖拉取策略问题

    问题描述 : 项目打包时,类缺少依赖,操作 pom.xml - Maven - Reload project ,还是不生效,但是同事(别人)那里正常。 问题出现的环境 : 可能项目是多模块项目,结构例如: 可能继承另一个项目(项目是快照版本),例如: 可能依赖是快照版本,例如: 问题分析 : Maven 查

    2024年01月23日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包