iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >一篇文章带你了解Maven的继承和聚合
  • 459
分享到

一篇文章带你了解Maven的继承和聚合

2024-04-02 19:04:59 459人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1、继承2、聚合总结1、继承 需求场景: 有三个 Maven 工程,每个工程都依赖某个 jar 包,比如 Junit,由于 test 范围的依赖不能传递,它必然会分散在每个工程中

1、继承

需求场景:

有三个 Maven 工程,每个工程都依赖某个 jar 包,比如 Junit,由于 test 范围的依赖不能传递,它必然会分散在每个工程中,而且每个工程的jar 包版本可能不一致。那么如何管理各个工程中对于某个 jar 包的版本呢?

解决办法:

将那个 jar 包版本统一提取到 “父" 工程中,在子工程中声明依赖时不指定版本,以父工程中统一设定的为准,同时也便于修改。

操作步骤:

①、创建父工程

②、在子工程中声明对父工程的引用  

<!--子工程中声明对父工程的引用  -->
  <parent>
      <groupId>com.ys.maven</groupId>
      <artifactId>Parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <!-- 以当前工程文件为基准的父工程 pom.xml文件的相对路径(可以不配置) -->
      <relativePath>../Parent/pom.xml</relativePath>
  </parent>

③、将子工程的坐标中与父工程坐标重复的内容删除(不删除也可以,为了简洁)

④、在父工程中统一那个 jar 的版本依赖

<dependencyManagement>
      <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8</version>
            <scope>test</scope>
        </dependency>
      </dependencies>
   
  </dependencyManagement>

dependencyManagement标签管理的依赖,其实没有真正依赖,它只是管理依赖的版本。  

⑤、在子工程中删除 Junit 的版本号

以后要更改版本号,我们只需要更改父工程中的版本号即可!!!  

⑥、父工程通过 properties 统一管理版本号

我们可以通过<properties></properties>自定义标签,然后在标签里面填写常量,这种方法不仅可以用来管理版本号,还可以用来管理比如设置某种编码等等。

2、聚合

需求场景:

在真实项目中,一个项目有表现层、业务层、持久层等。我们在用Maven 管理项目的时候,通常为创建多个 Maven 工程,也就是一个项目的多个模块。但是这样分成多个模块了,当我们进行项目打包发布的时候,那么要每一个模块都执行打包操作吗?这种重复的操作我们怎么才能避免呢?

解决办法

创建一个聚合工程,将其他的各个模块都由这个聚合工程来管理,那么我们在进行项目发布的时候,只需要打包这个聚合工程就可以了。

第一步:创建聚合工程(注意聚合工程的打包方式也必须为 pom,通常由 上面所讲的父工程来充当聚合工程)

第二步:创建子工程:业务层

①、选择 Maven Module

②、填写子工程模块名,打包方式选择 jar(子工程除了 WEB 层我们打包方式选择 war ,其余的都选择 jar)

第三步:创建子工程:表现层和持久层

创建步骤和前面一样,注意表现层打包方式我们要选择 war,因为要发布到 Tomcat 容器运行。

第四步:在聚合工程中添加子工程的引用

注意:

1、这里虽然各个模块有依赖关系,但是 <module></modelu>可以不让依赖顺序添加,maven会自动识别依赖关系进行编译打包。

2、这里总的聚合工程随便哪个工程都可以,但是通常用 Parent 工程来完成。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: 一篇文章带你了解Maven的继承和聚合

本文链接: https://www.lsjlt.com/news/163397.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一篇文章带你了解Maven的继承和聚合
    目录1、继承2、聚合总结1、继承 需求场景: 有三个 Maven 工程,每个工程都依赖某个 jar 包,比如 Junit,由于 test 范围的依赖不能传递,它必然会分散在每个工程中...
    99+
    2024-04-02
  • 一文带你搞懂Maven的继承与聚合
    目录一、继承二、继承关系实施步骤三、聚合与继承的区别一、继承 我们已经完成了使用聚合工程去管理项目,聚合工程进行某一个构建操作,其他被其管理的项目也会 执行相同的构建操作。那么接下来...
    99+
    2024-04-02
  • 一篇文章带你了解java接口与继承
    目录JAVA接口的概念接口的代码实现定义关键字:interface实现 关键字: implements举个列子注意事项Java继承什么是继承:总结JAVA接口的概念 官方解释:Jav...
    99+
    2024-04-02
  • 一篇文章带你入门Java继承
    目录Java中继承什么是继承:为什么要用继承:学习总结:继承关键字:extends总结Java中继承 什么是继承: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实...
    99+
    2024-04-02
  • 一篇文章带你了解C++面向对象编程--继承
    目录C++ 面向对象编程 —— 继承总结C++ 面向对象编程 —— 继承 "Shape" 基类 class Shape { public: Shape() { // 构造函数...
    99+
    2024-04-02
  • 一篇文章带你了解常用的Maven命令
    目录1、创建 Maven 工程2、Maven 的常用命令①、compile:将Java 源程序编译成 class 字节码文件。②、test:测试,并生成测试报告③、mvn clean...
    99+
    2024-04-02
  • 一篇文章带你了解Maven的生命周期
    目录1、什么是 生命周期?2、Clean Lifecycle:在进行真正的构建之前进行一些清理工作3、Default Lifecycle:构建的核心部分,编译、测试、打包、安装、部署...
    99+
    2024-04-02
  • 一篇文章带你了解JAVA面对对象之继承与修饰符
    目录Java面向对象之继承与修饰符继承1.含义2.实现3.好处4.短处5.成员变量的访问特点6.super () 方法7.继承中结构方法的访问特点8.方法重写9.java继承的注意事...
    99+
    2024-04-02
  • 一篇文章带你了解python集合基础
    目录1. 集合类型定义(1)集合是多个元素的无序组合2. 集合操作符 3. 集合处理方法4. 集合类型应用场景(1)包含关系比较(2)数据去重:集合数据所有元素无重复总结1...
    99+
    2024-04-02
  • 一篇文章带你搞定JAVA Maven
    目录1、maven是什么,为什么存在?项目结构是什么样子,怎么定位jar2、Idea 的操作1.新建maven项目2.配置仓库3.添加依赖,添加fastjson的依赖4.打包项目3、...
    99+
    2024-04-02
  • 一篇文章教你JS函数继承
    目录一. 前言:二.原型链继承:三.借用构造函数继承(对象伪装):四.组合继承:五.寄生组合继承:六.class继承:七.总结:一. 前言: Hello,大家最近过得好吗,€...
    99+
    2024-04-02
  • 一篇文章带你初步认识Maven
    目录1、引言  2、常规项目开发存在的问题3、什么是 Maven 4、Maven 的历史5、Maven 的目标6、Maven 的理念总结1、引言   你能搜到这个教程,说明你对 Ma...
    99+
    2024-04-02
  • 一篇文章带你了解XGBoost算法
    目录1. 什么是XGBoost1.1 XGBoost树的定义1.2 正则项:树的复杂度1.3 树该怎么长1.4 如何停止树的循环生成2. XGBoost与GBDT有什么不同3. 为什...
    99+
    2024-04-02
  • 一篇文章带你了解JavaScript-语句
    目录表达式语句复合语句和空语句复合语句空语句声明语句varfunction条件语句ifif/elseelse ifswitch循环whiledo/whileforfor/in跳转标签...
    99+
    2024-04-02
  • 一篇文章带你了解jQuery动画
    目录1.控制元素的显示与隐藏 show() hide()2.控制元素的透明度 fadeIn() fadeOut()3:控制元素的高度 slideUp() slideDown()总结 ...
    99+
    2024-04-02
  • 一篇文章带你了解JavaScript-对象
    目录创建对象对象直接量通过new创建对象原型Object.create()属性的查询和设置继承属性访问错误删除属性检测属性序列化对象总结创建对象 对象直接量 对象直接量是由若干名/值...
    99+
    2024-04-02
  • 一篇文章带你了解Java Stream流
    目录一、Stream流引入现有一个需求:1.用常规方法解决需求2.用Stream流操作集合,获取流,过滤操作,打印输出二、Stream流的格式三、获取流四、Stream流的常用方法方...
    99+
    2024-04-02
  • 一篇文章带你了解vue路由
    目录概念Vue Router简介Vue Router的特性Vue Router的使用步骤分类嵌套路由动态路由命名路由编程式导航总结概念 路由的本质就是一种对应关系,比如说我们在url...
    99+
    2024-04-02
  • 一篇文章带你了解Java SpringBoot Nacos
    目录1、什么是Nacos 1.1与eureka对比1.2与zookeeper对比1.3与springcloud config 对比 2、Spring Cloud Alibaba 套件...
    99+
    2024-04-02
  • 一篇文章带你了解初始Spring
    目录为什么要使用SpringSpring概述Spring容器使用流程1.启动容器2.完成bean的初始化3.注册bean到容器中4.装配bean的属性bean的注册bean属性注入总...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作