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日
    浏览(35)
  • Java之多线程进阶

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

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

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

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

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

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

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

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

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

    2024年01月23日
    浏览(33)
  • 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日
    浏览(37)
  • idea maven聚合工程pom依赖

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

    2024年02月16日
    浏览(37)
  • Maven工程开发中的继承与聚合

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

    2024年02月16日
    浏览(35)
  • Maven 聚合和继承 Inheritance vs Aggregation

    A Project Object Model or POM is the fundamental unit of work in Maven. It is an XML file that contains information about the project and configuration details used by Maven to build the project. It contains default values for most projects. Examples for this is the build directory, which is  target ; the source directory, which is  src/main/java ; the tes

    2024年02月09日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包