首页 > 编程语言 >java——maven——基础转载

java——maven——基础转载

时间:2023-04-15 13:00:28浏览次数:40  
标签:Maven 依赖 java 项目 元素 maven 坐标 构件 转载

Maven 坐标

Maven 坐标一套规则,它规定:世界上任何一个构件都可以使用 Maven 坐标并作为其唯一标识,Maven 坐标包括 groupId、artifactId、version、packaging 等元素,只要用户提供了正确的坐标元素,Maven 就能找到对应的构件。 

任何一个构件都必须明确定义自己的坐标,这是 Maven 的强制要求,任何构件都不能例外。我们在开发 Maven 项目时,也需要为其定义合适的坐标,只有定义了坐标,其他项目才能引用该项目生成的构件。

 

 

Maven 坐标主要由以下元素组成:

  • groupId: 项目组 ID,定义当前 Maven 项目隶属的组织或公司,通常是唯一的。它的取值一般是项目所属公司或组织的网址或 URL 的反写,例如 net.biancheng.www。
  • artifactId: 项目 ID,通常是项目的名称。
  • version:版本。
  • packaging:项目的打包方式,默认值为 jar。


以上 4 个元素中 groupId、artifactId 和 version 是必须定义的,packaging 是可选的。

 

 

 

 

 

 

 

 

 

依赖声明

Maven 坐标是依赖的前提,所有 Maven 项目必须明确定义自己的坐标,只有这样,它们才可能成为其他项目的依赖。当一个项目的构件成为其他项目的依赖时,该项目的坐标才能体现出它的价值。

当 Maven 项目需要声明某一个依赖时,通常只需要在其 POM 中配置该依赖的坐标信息,Maven 会根据坐标自动将依赖下载到项目中。


 

 

dependencies 元素可以包含一个或者多个 dependency 子元素,用以声明一个或者多个项目依赖,每个依赖都可以包含以下元素:

  • groupId、artifactId 和 version:依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven 根据坐标才能找到需要的依赖。
  • type:依赖的类型,对应于项目坐标定义的 packaging。大部分情况下,该元素不必声明,其默认值是 jar。
  • scope:依赖的范围。
  • optional:标记依赖是否可选。
  • exclusions:用来排除传递性依赖。

 

 

获取依赖坐标

通常情况下,绝大部分依赖的 Maven 坐标都能在 https://mvnrepository.com/ 中获取。

 


例如,当项目中需要引入 junit 进行单元测试时, 我们只需要在首页搜索 junit 即可,如下图。


图1:获取坐标定位(猛击图片,查看原图)

 

 

 

 

 


选择合适的版本,在依赖详情页的最下方就是该版本依赖的 Maven 坐标,我们可以直接将其复制到项目的 pom.xml 中使用。

图2:Maven 依赖坐标

 

 

 

 

 

 

依赖管理:

 

 

 

 

 

 

 

 

重点:当前有3个项目,项目2需要依赖项目3,那么pom中该怎么设置呢?如下:

 

即,把项目3的项目坐标,放入到项目2的依赖里面;

 

 

 

 

 

 

依赖传递:如上图项目2依赖项目3。当前项目3中依赖了junit以及log4j;项目2个有依赖log4j,当项目2依赖了项目3之后,项目2也可以使用junit了。这就叫依赖传递。

 

 

 

 

 

 

 

 

示例如下:

 

修改之前:

 

 

修改:

 

 

修改完成后: 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

依赖范围:

 

 

标签:Maven,依赖,java,项目,元素,maven,坐标,构件,转载
From: https://www.cnblogs.com/xiaobaibailongma/p/17320907.html

相关文章

  • Java stream实现list转化为map
    在Stream流中将List转换为Map,是使用Collectors.toMap方法来进行转换。key和value都是对象中的某个属性值。Map<String,String>userMap1=userList.stream().collect(Collectors.toMap(User::getId,User::getName));使用箭头函数Map中,key是对象中的某个属性值,value是......
  • 快速复习Java
    //数据类型//1.整数型bytea=127;//范围-128~127shortb=29999;//范围正负三万intc=999999999;//范围正负21亿//赋值long类型时,数值如果比int类型表述范围大时,必须要在数值后面加l/L.longd=999;longe=9999999999L;//范围很大很大//2.浮点型f......
  • Java 把列表元素拼接字符串
    摘要:使用JavaCollectors.joining方法把列表中的所有元素通过指定的分隔符连接字符串。目录综述使用For循环StringUtils.join函数Collectors.joining(Function)函数GuavaJoinerjoin函数String.join函数结束语综述  在项目开发中,经常遇到的一个问题就是要把得到的一个......
  • Java基础知识点内部类之局部内部类和匿名内部类
    一:局部内部类1概述:将内部类定义在方法里面就叫做局部内部类。类似于方法里面的局部变量。2.注意点:外界无法直接使用,需要在方法内部创建对象并使用。3.该类可以直接访问外部类成员,也可以访问方法内的局部变量。publicclassOuter{publicstaticvoidshow(){......
  • java入门
    JDK:JavaDevelopmentKit(Java 集成开发工具)按应用平台划分:J2EE: Java2EnterpriseEdition 可扩展的企业级应用J2SE: Java2StandardEdition 用于工作丫和PC机的Java标准平台J2ME:Java2MicroEdition用于嵌入式消费电子平台按运行的操作系统划分:JDK分别有f......
  • 02_JAVA编写高质量的代码
    高质量代码不仅仅要做到运行正确,还应做到可读性强、易于维护,简洁高效。......
  • Java学习路线
    前期准备写代码的工具:菜鸟工具:https://c.runoob.com/compile/10想学好编程,别背代码,要多写,把这句话刻到脑子里。选视频和找资料的小技巧:多看评论区、多看隔壁评论区、不要看过期的视频。Java入门想要学好编程,一定要多敲代码!建议先跟着书上的例子敲一遍代码,然后试着自......
  • Java连接RabbitMQ报错:An unexpected connection driver error occured(偶尔能连上)
    1、查看rabbitMq的状态。输入命令:rabbitmqctlstatus,发现没有报错,但是rabbit中的host是root,并不是ip地址,所以连接不上。 2、运行命令:echo【ip地址】root>>/etc/hosts。将RabbitMQ服务所在的IP地址添加到/etc/hosts中。 ......
  • 最优二叉搜索树问题(Java)
    最优二叉搜索树问题(Java)1、前置介绍2、算法设计思路2.1最优二叉搜索树的结构2.2一个递归算法2.3计算最优二叉搜索树的期望搜索代价3、代码实现4、复杂度分析5、参考资料1、前置介绍设S={x1,x2,…,xn}是有序集,且x1<x2<…<xn,表示有序集S的二叉搜索树利用二叉树的结......
  • Java面向对象编程基础
    类与对象类和对象的区别和联系类是抽象的,概念的,代表一类事物,比如人类,猫类..,即它是数据类型.对象是具体的,实际的,代表一个具体事物,即是实例.类是对象的模板,对象是类的一个个体,对应一个实例对象在内存中存在形式!字符串本质上是一个引用类型,按照jvm的规则会把字符串放在方法区的......