Mavan进阶之多模块(聚合)

这篇具有很好参考价值的文章主要介绍了Mavan进阶之多模块(聚合)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Mavan进阶之多模块(聚合),# maven-advance,maven,maven,java

Maven 多模块(聚合)

Maven 继承和聚合是 2 个独立的概念。工程与工程之间可能毫无关系,也可能是继承关系,也可能是聚合关系,也可能既是继承又是聚合关系。继承和聚合可以同时出现,但并不是必须同时出现。

  • Maven 继承(父子工程)的目的为了配置文件的复用和配置信息的统一管理;

  • Maven 聚合(多模块工程)目的是项目功能上的拆分和批量执行 mvn 命令;

[!] 例如
在 log4j1 时代,log4j 项目的「产出成果」只有一个 log4j.jar 包。到了 log4j2 时代,log4j 项目的「产出成果」就变成了两个包:log4j-apilog4j-core

很明显,就是两部分相对独立的代码分别打成了两个包,而并不像以前那样打成一个包。

由于 Maven 多模块项目是父子项目的一种高级形式,因此,多模块项目也是有一个父模块包含一个或多个子模块,不过有几点不同:

  • 不同点 1:模块和模块的位置不同。

多模块项目中,子项目通常是在父项目「里面」的;而多模块项目中,普通项目和聚合项目通常是「平级」的。

  • 不同点 2:pom.xml 中内容不同。

多模块项目中,父项目中会『多出来』一个 <modules> 元素。

<project ...>

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>my-parent</artifactId>
    <version>2.0</version>
    <packaging>pom</packaging>

    <modules>
        <module>child1-module</module>
        <module>child2-module</module>
        <module>...</module>
        <module>...</module>
        <module>...</module>
    </modules>

    ...

</project>

非父子关系的多模块项目

其实多模块项目可以不必是父子项目。

这种情况下:

  1. 原来的父项目中仍有 <modules> 元素,用来囊括子项目。

  2. 原来的子项目中不再有 <parent> 元素。或者 <parent> 元素指向另外的项目,不再是原来的父项目。

这样一来,这些项目和项目之间就「不再是父子」项目关系,因此,自然就不能继承配置了。

不过,另一个功能在这种情况下倒是保留下来了:批量执行 maven 命令文章来源地址https://www.toymoban.com/news/detail-700677.html

到了这里,关于Mavan进阶之多模块(聚合)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • DAY07_Maven高级——分模块开发与设计&依赖管理&聚合与继承&属性管理&多环境配置与应用&私服

    问题导入 分模块开发对工程有什么好处? 模块拆分原则 目的:项目的扩展性变强了,方便其他项目引用相同的功能。 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享 问题导入 一个完整的工程依据什么来进行模块的拆分? 2.1 创建Maven模块 2.2 书

    2024年02月09日
    浏览(46)
  • Java之多线程进阶

    目录 一.上节内容复习 1.线程池的实现 2.自定义一个线程池,构造方法的参数及含义 3.线程池的工作原理 4.拒绝策略 5.为什么不推荐系统提供的线程池 二.常见的锁策略 1.乐观锁和悲观锁 2.轻量级锁和重量级锁 3.读写锁和普通互斥锁 4.自旋锁和挂起等待锁 5.可重入锁和不可重入

    2024年02月05日
    浏览(49)
  • Maven(六):Maven的使用——继承与聚合

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! Maven 工程之间, A 工程继承 B 工程 B 工程:父工程 A 工程:子工程 本质上是 A 工程的 pom.xml 中的配

    2024年02月06日
    浏览(39)
  • 【java】【maven】【高级】MAVEN聚合继承属性等

    目录 1、模块开发与设计 2、聚合 2、继承 3、属性 4、版本管理 5、资源配置 6、多环境配置 7、多环境开发配置 8、跳过测试 9、私服  前言:maven的高级使用包含分模块开发与设计、聚合、继承、属性、版本管理、资源配置、多环境配置、多环境开发配置、跳过测试、私服  

    2024年02月13日
    浏览(35)
  • Maven高级(三)--聚合

    此时tlias-web-management模块的父工程是tlias-parent,该模块又依赖了tlias-pojo,tlias-utils模块。那么此时,我们要将tlias-web-management模块打包,是比较繁琐的。因为 进行项目打包,maven会从本地仓库来查找tlias-parent的父工程和它所依赖的模块tlias-pojo和tlias-utils,而本地仓库目前是没有这几

    2024年02月13日
    浏览(32)
  • Maven工程继承和聚合关系

    Maven 继承是指在 Maven 的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作。 在父工程中统一管理项目中的依赖信息。 它的背景是: 对一个比较大型的项目进行了模块拆分。 一个 project 下

    2024年01月23日
    浏览(44)
  • idea maven聚合工程pom依赖

    spring boot 与 spring cloud 与 spring.cloud.alibaba 版本选择

    2024年02月16日
    浏览(51)
  • Maven 依赖传递和冲突、继承和聚合

    1.1.1 概念         假如有三个 Maven 项目 A 、 B 和 C ,其中项目 A  依赖 B ,项目 B  依赖 C 。那么我们可以说 A 依赖 C 。也就是说,依赖的关系为: A—B—C , 那么我们执行项目 A 时,会自动把 B 和 C 都下载导入到 A 项目的 jar 包文件夹中,这就是依赖的传递性。 1.1.2 作

    2024年01月21日
    浏览(47)
  • Maven工程开发中的继承与聚合

    设置一个空的maven工程,工程里面只有pom文件,另外将这个工程的打包方式设置为pom。 在聚合工程里面添加聚合工程里面管理的模块 例如下面02工程继承上面的01工程,在02工程的pom文件中要配置要继承的父工程的依赖,并添加上相对路径。 此时,2、3、4中所用公共依赖的模

    2024年02月16日
    浏览(43)
  • Maven工程 — 继承与聚合 相关知识点详解

     简介:这篇帖子主要讲解Maven工程中的继承与聚合的相关知识点,用简洁的语言和小编自己的理解,深入浅出的说明Maven工程的继承与聚合。 目录 1、继承 1.1 继承关系的实现 1.2 版本锁定 2、聚合 2.1 聚合方法 3、总结 3.1 作用与联系 4、私服 4.1 私服介绍 4.2 资源上传与下载

    2024年01月25日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包