新年快乐!学习Java第84天,Maven工程继承和聚合关系

这篇具有很好参考价值的文章主要介绍了新年快乐!学习Java第84天,Maven工程继承和聚合关系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Maven工程继承关系

  1. 继承概念

    Maven 继承是指在 Maven 的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作。

  2. 继承作用

    在父工程中统一管理项目中的依赖信息。

    它的背景是:

    • 对一个比较大型的项目进行了模块拆分。

    • 一个 project 下面,创建了很多个 module。

    • 每一个 module 都需要配置自己的依赖信息。

    它背后的需求是:

    • 在每一个 module 中各自维护各自的依赖信息很容易发生出入,不易统一管理。

    • 使用同一个框架内的不同 jar 包,它们应该是同一个版本,所以整个项目中使用的框架版本需要统一。

    • 使用框架时所需要的 jar 包组合(或者说依赖信息组合)需要经过长期摸索和反复调试,最终确定一个可用组合。这个耗费很大精力总结出来的方案不应该在新的项目中重新摸索。 通过在父工程中为整个项目维护依赖信息的组合既保证了整个项目使用规范、准确的 jar 包;又能够将以往的经验沉淀下来,节约时间和精力。

  3. 继承语法

    • 父工程

  <groupId>com.atguigu.maven</groupId>
  <artifactId>pro03-maven-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <!-- 当前工程作为父工程,它要去管理子工程,所以打包方式必须是 pom -->
  <packaging>pom</packaging>

2.子工程

<!-- 使用parent标签指定当前工程的父工程 -->
<parent>
  <!-- 父工程的坐标 -->
  <groupId>com.atguigu.maven</groupId>
  <artifactId>pro03-maven-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
</parent>

<!-- 子工程的坐标 -->
<!-- 如果子工程坐标中的groupId和version与父工程一致,那么可以省略 -->
<!-- <groupId>com.atguigu.maven</groupId> -->
<artifactId>pro04-maven-module</artifactId>
<!-- <version>1.0-SNAPSHOT</version> -->

父工程依赖统一管理

  • 父工程声明版本

<!-- 使用dependencyManagement标签配置对依赖的管理 -->
<!-- 被管理的依赖并没有真正被引入到工程 -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>6.0.10</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>6.0.10</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>6.0.10</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>6.0.10</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>6.0.10</version>
    </dependency>
  </dependencies>
</dependencyManagement>

 子工程引用版本

<!-- 子工程引用父工程中的依赖信息时,可以把版本号去掉。  -->
<!-- 把版本号去掉就表示子工程中这个依赖的版本由父工程决定。 -->
<!-- 具体来说是由父工程的dependencyManagement来决定。 -->
<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
  </dependency>
</dependencies>

 

2. Maven工程聚合关系

  1. 聚合概念

    Maven 聚合是指将多个项目组织到一个父级项目中,以便一起构建和管理的机制。聚合可以帮助我们更好地管理一组相关的子项目,同时简化它们的构建和部署过程。

  2. 聚合作用

    1. 管理多个子项目:通过聚合,可以将多个子项目组织在一起,方便管理和维护。

    2. 构建和发布一组相关的项目:通过聚合,可以在一个命令中构建和发布多个相关的项目,简化了部署和维护工作。

    3. 优化构建顺序:通过聚合,可以对多个项目进行顺序控制,避免出现构建依赖混乱导致构建失败的情况。

    4. 统一管理依赖项:通过聚合,可以在父项目中管理公共依赖项和插件,避免重复定义。

  3. 聚合语法

    父项目中包含的子项目列表。

<project>
  <groupId>com.example</groupId>
  <artifactId>parent-project</artifactId>
  <packaging>pom</packaging>
  <version>1.0.0</version>
  <modules>
    <module>child-project1</module>
    <module>child-project2</module>
  </modules>
</project>

聚合演示

通过触发父工程构建命令、引发所有子模块构建!产生反应堆!

ps:来源尚硅谷文章来源地址https://www.toymoban.com/news/detail-772787.html

到了这里,关于新年快乐!学习Java第84天,Maven工程继承和聚合关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Maven】依赖、构建管理 继承与聚合 快速学习(3.6.3 )

    Maven 文档 Maven 是一款为 Java 项目构建管理、依赖管理的工具( 软件 ),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。 依赖管理工具 maven下载版本 使用:apache-maven-3.6.3 软件结构: 环境变量 命令行显示版本 mvn -v 设置: maven/conf/settings.x

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

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

    2024年02月06日
    浏览(38)
  • Maven进阶系列-继承和聚合

    Maven工程之间存在继承关系,例如工程B继承工程A,工程C也继承了工程A ProjectA的pom.xml ProjectB的pom.xml ProjectC的pom.xml 本质上是ProjectB和ProjectC的 pom.xml 中的配置 继承了ProjectA中 pom.xml 的配置。 这里提到了 超级pom.xml ,对于我们创建的一个maven工程,即便我们自己的pom.xm文件中没

    2024年02月07日
    浏览(41)
  • 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分模块-继承-聚合-私服的高级用法

    JavaWeb知识,介绍Maven的高级用法!!! Maven 是一款构建和管理 Java 项目的工具 ,在需要开发一些中大型的项目,此时仅凭前面所学习的 Maven 的基础知识就比较难以应对了。还需要学习 Maven 提供的一些高级的功能,这些功能在构建和管理 Java 项目的时候用的也是非常多的。

    2024年02月13日
    浏览(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日
    浏览(48)
  • Maven高级操作--分模块设计、聚合、继承和私服

    问题:当项目做大做强的时候,前面的基础Spring开发的框架都无法满足java大型项目的维护和复用,而且团队合作也会造成较大的困难。 所以就需要 分模块设计 :将项目按照功能拆分成若干个子模块,方便项目的 管理维护 、 扩展 ,也方便模块间的 相互调用 , 资源共享 。

    2024年02月11日
    浏览(41)
  • 【热门框架】Maven中聚合,继承指的是什么?有什么作用?

    Maven中的聚合和继承是两个重要的功能,用于管理多个项目的共同部分。 聚合 Maven中的聚合(Aggregation)指的是将多个子项目聚合成一个父项目的过程。聚合的语法如下: 在这个例子中, modules 元素用来指定子项目列表。在父项目中使用聚合的好处在于: 方便对多个子项目进

    2024年02月02日
    浏览(37)
  • BUUCTF中的“新年快乐”

    0x00 前言 今天看了一下日期,距过年还有28天,正好今天做的题目也叫新年快乐,就提前给大家拜个早年,祝大家早年幸福。 0x01 正文 虽然是新年快乐的题,但是打开是一点儿都不快乐,它让我输入flag。 既然这样的话,那只好PE一下打开看看啰。   于是,遇见了做题以来的

    2024年02月08日
    浏览(41)
  • Go语言实现新年快乐的效果

    在 Go 语言中,你可以使用 fmt 包来实现新年快乐的效果。以下是一个简单的例子: 在这个例子中,我使用 ANSI 转义码来设置输出的颜色。 \\033[31m 表示红色, \\033[32m 表示绿色, \\033[33m 表示黄色, \\033[36m 表示青色, \\033[35m 表示紫色, \\033[0m 用于重置颜色。 请注意,在不同的终

    2024年01月23日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包