1.坐标
1)数学上的坐标:
[2]在空间中, 使用X,Y,Z三个向量可以唯一的定位空间中的任何一个点
2)Maven中的坐标:
[1]groupid : 公司或组织域名倒序 + 项目名
1 <groupid>com.wzy.maven</groupid>
1 <artifactid>Hello</artifactid>
1 <version>1.0.0</version>
Maven工程的坐标与仓库中路径的对应关系
1 <groupid>org.springframework</groupid> 2 <artifactid>spring-core</artifactid> 3 <version>4.0.0.RELEASE</version>
对应的路径是:groupid / artifactid / version / artifactid-version.jar
1 org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar
2.POM
含义: Project Object Model 项目对象模型,类似于DOM Document Object Model 文档对象模型pom.xml对于Maven工程是核心配置文件, 与构建过程相关的一切设置都在这个文件中进行配置 重要程度相当于web.xml对于动态web工程。
3.仓库
1)什么是仓库?
Maven仓库就是放置所有jar文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖jar.
2)仓库的分类:
[2]远程仓库:
(1).私服: 架设在当前局域网环境下, 为当前局域网范围内所有Maven工程服务
(2)中央仓库: 架设在Internet上, 为全世界所有Maven工程服务
(3)中央仓库镜像:架设在各大洲, 为中央仓库分担流量, 减轻中央仓库的压力, 同时更快的响应用户请求(如aliyun镜像)
3)仓库中保存的内容
[1]Maven自身所需要的插件
[2]第三方框架或工具的jar包
[3]我们自己开发的Maven工程
4.依赖
1)什么是依赖?
对于我们自己开发的maven工程, 使用mvn instail命令安装后就可以进入仓库。
1 <dependency> 2 <groupId>junit</groupId> 3 <artifactId>junit</artifactId> 4 <version>4.12</version> 5 <scope>test</scope> 6 </dependency>
2)依赖的范围
Maven依赖有以下几种范围,compile、test、provided、runtime、system,这五种范围分表示了,在项目构建过程当前依赖所起的作用,其中Maven中默认的依赖范围是compile。
[1]compile范围依赖
对主程序是否有效:有效
对测试程序是否有效: 有效
是否参与打包: 参与
是否参与部署: 参与
典型例子: spring-core
[2]test范围依赖
对主程序是否有效: 无效
对测试程序是否有效: 有效
是否参与打包: 不参与
是否参与部署: 不参与
典型例子: junit
[3]provided范围依赖
对主程序是否有效: 有效
对测试程序是否有效: 有效
是否参与打包: 不参与
是否参与部署: 不参与
典型的例子: servlet-api.jar
[4]runtime范围依赖
对主程序是否有效: 有效
对测试程序是否有效: 有效
是否参与打包: 参与
是否参与部署: 参与
典型的例子: JDBC驱动
[5]system范围依赖
对主程序是否有效: 有效
对测试程序是否有效: 有效
是否参与打包: 不参与
是否参与部署: 不参与
典型的例子: 手动引入的jar而非在仓库中查找到的
3)关于system依赖范围的说明
上面几种依赖范围比较特殊的依赖范围就是system,它的作用基本和provided类似,但是需要手动引入jar包的路径,用法如下,通常不建议使用,因为最好的做法是通过Maven在本地仓库引入jar包。
1 <dependencies> 2 <dependency> 3 <groupId>javax.sql</groupId> 4 <artifactId>jdbc-stdext</artifactId> 5 <version>2.0</version> 6 <scope>system</scope> 7 <systemPath>${java.home}/lib/rt.jar</systemPath> 8 </dependency> 9 </dependencies>