MAVEN系列之二@MAVEN坐标以及依赖

	好,现在又到了说闲话的时候了,接下来,将会按照以下的方式来说明Maven的坐标和依赖关系,并且会搭载一些废话,
	1、maven的坐标
		有惊无险的我把手机关了,就只为了能够写好这篇文章,烧了一杯茶,其他的不重要,重要的是,我真的用不来CSDN的这个office控件。
		嗯,闲话少说,现在左右开弓,明天晚上有一个maven私服的配置和讲解,呵呵,该睡觉哇。
		在这个纷繁复杂的世界中,找到一个东西,那是难上难加难啊,比如说女朋友,太难找了,还有就是钱,也难啊。在Java的世界中,各种jar包,提供各种功能
然而,就是因为多(女朋友只要一个,钱可以很多很多的哦),所以才需要到各个网站去下载,装配,遇到问题,呵呵,你懂的。那怎么去找呢,给这个世界编号,就像地球的经纬度
,可以定位,所以,来哇,maven也学到了,使用坐标,轻轻松松的找到。
		惯例,来一段代码:
			
		还是按照惯例,来一张图片,没工夫研究这个office控件,图片安逸一些。
		<dependency>现在有5个子元素,一一讲解。
		1)、groupId
			说实话,这个有点儿像是一个大类,就像组织一样,<groupId>,组织ID,组织呢,有可能是公司,也有可能是一个团体性质的组织,就像JCP,Java不属于任何一家公司,由这个组织进行管理的。
			maven的groupId声明的就是这个玩意儿,属于哪一个组织或者是公司的,反正就是,我的世界,我做主,我的产权,要用哇,拿去哇。
		2)、artifactId
			这个呢,我翻译成工件,比喻就是,比如修车的那儿,有各种各样的工具,螺丝刀、活动扳手、开口扳手、梅花扳手、钢管钳、8mm10mm 12mm 13mm T字杆套筒扳手、套筒(长和短)、大中小快速扳手气动风炮、塞尺、刀口尺(测量气缸盖平面的专用尺、故障诊断解码仪、电工万用表、12V电工试灯、扭力扳手、压轴承专用架、压减震器弹簧器、千斤顶、换机油的三抓或机油扳手拆装、内六角扳手、内花角扳手、铁锤子、球头压出器、鲤鱼钳、老虎钳、尖嘴钳、冲字螺丝刀、活塞带环装缸器(就是大修装活塞用的)机油压力表,燃油压力表、空调压力表、空调冰种(雪种)瓶 刺针头,.....,反正一大堆,就是缩小范围。
			此处声明的是需要的某一个工件的信息,需要什么工具。
		3)、version
			顾名思义,版本信息,就是工件的版本,比如螺母,还有螺栓,大小不一,扳手呢,也是不一样的,需要大小,规格,来确定大小,哪一个合适。
		4)、scope作用域
			作用域,这个就是管理工件的范围,比如说,是开口的,领花的,还是打蜡的,范围,下面一点会详细讲解这个。
		5)systemPath
			系统路劲,刚好这个例子是这样的,这个只对scope为system的才有用,指定jar在本地的路径。
	2、maven作用域
		关键时刻,scope,作用域,就是权力的范围,古人有训,不在其位不谋其政,各人自扫门前雪莫管他人瓦上霜,一句话,就是,关你我屁事,我不稀罕
		scope有几个指定的值,一一讲解,用来指定于编译,测试,运行之间的关系。
		1)、compile
			编译依赖范围。默认的值,没有指定的时候,就是这个,使用此依赖范围,对三个时期都有效果,就像太平洋警察,管的宽,一个典型就是,spring-core,Spring管理bean,控制反转,依赖的注入,都是这个。
		2)、test
			测试依赖范围。只对测试有效,对编译和运行无效,典型就是JUnit,测试的时候才有效果。
		3)、provided
			已提供依赖范围。对于编译和测试无效,对于运行有效
		4)、runtime
			运行时依赖范围,在编译的时候没有效果,测试和运行代码的时候都是运行时,典型就是JDBC,只要有接口,其他的不管。
		5)system
			系统依赖范围。和编译,测试,运行都有关系,和provided一样,但是唯一的区别及时需要显示的指定文件的依赖路径,不会通过maven去解析。比如一些特殊的JDK,需要加在包里。(用法,去找度娘)
	3、maven依赖传递性
		依赖的传递性,就是,A依赖B,B依赖C,所以就有了A对C的依赖,可以注意到,在maven项目的依赖里面,显示的包远远大于我们配置的,为啥呢,麻烦啊,爱屋及乌,呵呵
		那么问题来了,要出問題的啊.
		1)、依赖长短
			就像A->B,B->C,C->D(1,0),B->D(2,0),乱七八糟的,那么用哪一个呢,maven会根据依赖的路径长短来确定依赖,A->B->C-D(1,0)这个依赖路径为3,A->B->D(2,0)这个为2,当然是走近路咯。
		2)、路径相同
			A->B-C(1,2),A->D->C(1,3),这个就纠缠不清了,maven会根据声明的优先级别来确定依赖,所以此处C(1,2)赢了。
	最后总结一下,坐标功能可以确定某一个我们需要的依赖包,并且maven会自己去帮我们下载,我们可以去喝茶,泡妹子,但是,还是可以去逛一下其他技术帖子。
	嗯,不想说了,睡觉,一点了啊。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值