java继承聚合依赖,Maven依赖聚合与继承

1、maven编写pom

1.1、pom核心元素project:是所有pom.xml元素的根元素。可以声明一些命名空间以及xsd,使用这些xsd可以让第三方工具快速编辑pom

modeVersion:根元素的一个子元素,指定当前pom模型版本

groupId:定义属于哪个包

artifactId:当前maven文件的唯一id

version:当前项目的版本

name:非必填,指定项目名称

dependencies:可以包含多个dependency,声明依赖的坐标

dependency:添加坐标依赖

scope:依赖的范围

groupId、artfactId、version是定义项目的基本坐标

1.2、pom文件预览

e34c240b1b5272a3988703f232205b79.png

2、maven依赖详解

2.1、配置依赖<?xml version="1.0"encoding="UTF-8"?>

依赖类型

依赖范围

可选依赖

排除依赖

其中

type:为依赖的类型,默认为jar,对应项目坐标定义的packageing

scope:依赖范围,依赖范围就是控制与三种classpath(编译、测试、运行)的关系,包含值有compile:编译范围依赖,默认为该依赖范围,对编译、测试、运行三种classpath都有效。如:log4j

provided:已提供依赖范围,对编译和测试有效,运行无效。如:servlet-api

runtime:运行依赖范围,对测试运行有效,编译无效。如:jdbc驱动

test:测试依赖范围,对编译和测试有效,运行时无效。如:junit

import:导入依赖范围,不会对三种classpath造成影响

system:系统依赖范围,和provided一样,但是和系统环境有关,慎用

optional:是否关闭传递依赖,false默认是传递依赖,true是屏蔽传递依赖

exclusions:指定需要排除的依赖(只需要指定groupId和artfactId)

传递依赖

9d90011496d178015fa772f9c60a750b.png

可选依赖

22d6cebc91dc1368e806bcf7f5681072.png

原则为:路径最近优先;第一声明优先

2.2、归类依赖

如果统一个项目中的不同模块如hadoop-common、hadoop-hdfs等等,他们的依赖版本都是相同的,就可以使用归类依赖。这样依赖版本就可以进行统一升级

${scala.suffix.version}.8

org.scala-lang

scala-library

${scala.version}

org.scala-lang

scala-compiler

${scala.version}

3、maven聚合和继承

3.1、继承

为了解决多个模块(pom.xml)有很多相同的配置,可以以使用pom的继承。需要创建pom的父子结构,在父pom中声明一些配置供子pom继承,以实现”一处声明,多出使用”的目的

6b39b261aad0c1cc8ff91e40ec2f1ab5.png

父模块中pom包含的信息

统一属性的定义

构建及插件的版本管理

发布管理设置

团队信息等

子模块使用parent元素声明父模块,parent夏子元素中groupId、artfactId和version指定父模块

坐标,必填

父模块常用元素

:定义变量信息,子模块可以使用

:将项目中需要用到的构件统一在此进行管理,包括构件包、构件名及版本,

而子模块引用即可,统一构件的版本管理,方便维护

:同上用法,主要针对maven插件

:发布管理,所有子模块复用

作为父模块pom的打包类型必须为pom

3.2、聚合

为了能够使用一跳命令就能够构件多个模块,可以建立额外的模块,通过该模块构件多个模块,而该模块

也有pom

c09f0776200eb670694adedff5e905d2.png

聚合:将多个模块聚合在一起,这里需要显示定义的pom,并用modules配置多个已有模块来表示聚合

,聚合模块无需 src/main/java 目录

使用:一般情况下,为了方便用户构件项目,通常将聚合模块放在项目目录的最高层,其它模块则作为

聚合模块的子目录存在

4.0.0

com.liumm

Hadoop-Learning

pom

1.0-SNAPSHOT

Hdfs

MapReduce

Hbase

Hive

ElasticSearch

经典模块结构

1e74b8b883b84bb0f3915c251004e22a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值