Maven:坐标

坐标是定位用的。Maven的坐标是4维的,由以下四个部分组成:

1, groupId:定义当前maven隶属项目。Cn.ticast.maven ,包名

2, artifactId:定义实际项目中的一个模块。  最好定义成对外提供的那个类的名字

3, version:定义当前项目的当前版本。0.0.1-SNAPSHOT,当前版本,SNAPSHOT是快照。

4, packaging:定义该项目的打包方式。Web项目打出来的是war包。

这四个东西在pom.xml中见过,但是pom.xml中没有packaging标签,其实他有一个默认值,是jar。

定义成四维的意义:要找到这个类很方便。

Maven中需要找其他类的情况就是依赖关系,一个类依赖于另一个类,必须确定那个类的位置,而在pom.xml中定义依赖是用的就是这四维坐标。(要给类在仓库中起一个唯一的定位,这样别的类就很容易找到他)。

 

依赖的定义:如下:

<dependencies>					//依赖的jar,工程
		<dependency>
			<groupId>junit</groupId>	//依赖junit
			<artifactId>junit</artifactId>
			<version>4.9</version>		//junit版本
			<scope>test</scope>		//作用域,test为在测试阶段有效。
		</dependency>		
		
		<dependency>
			<groupId>cn.itcast.maven</groupId>		//依赖类所在的包
			<artifactId>Hello</artifactId>			//java文件名
			<version>0.0.1-SNAPSHOT</version>		//版本
			<scope>compile</scope>				//作用域,编译时有效
		</dependency>		
		
	</dependencies>

Scope作用域详解:


作用域说明了这个依赖的jar在项目构建的过程中的哪些步骤有效。

Scope共有四个可选值:

Compile:如上例所示,这个类(HelloFriend)依赖于(调用了Hello的方法)Hello,依赖定义中定义这个Hello的作用域为compile,因为,这个HelloFriend在主代码main编译时需要Hello,同样测试的时候也用到了Hello中的方法,打包运行后也要用到Hello中的那个方法,所以在三个时期都有效,定义成compile。

Test:如上例所示,HelloFriend在测试的时候需要用到junit,所以HelloFriend依赖于junit,但是他仅仅在测试的时候需要用到junit,在其他的时候不需要用他,所以将junit的作用域定义为test,即只在测试阶段有效。

Provided:一个web项目在主程序中肯定会用到servlet-api的东西,所以在主代码有效,当然测试的时候也需要用到servlet-api的东西,但是运行时用的不一定是这个servlet-api,可能会用别的api,所以运行时为NO。

Runtime:即这个依赖只在运行是才会被用到,如JDBCDriver,它只带运行时做注册驱动,其他的时候都用不到,所以这个作用域只在运行时有效。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值