maven学习(九)——maven中的坐标、依赖以及仓库
2017-01-18 20:14
197 查看
一、Maven坐标
1.1、什么是坐标?
在平面几何中坐标(x,y)可以标识平面中唯一的一点。1.2、Maven坐标主要组成
groupId:组织标识(包名)artifactId:项目名称
version:项目的当前版本
packaging:项目的打包方式,最为常见的jar和war两种
样例:
1.3、Maven为什么使用坐标?
Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范。拥有了统一规范,就可以把查找工作交给机器。
二、依赖管理
2.1、依赖配置
依赖配置主要包含如下元素:<!--添加依赖配置--> <dependencies> <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> <!--项目要使用到Hello的jar包,所以在这里添加Hello的jar包的依赖--> <dependency> <groupId>me.gacl.maven</groupId> <artifactId>Hello</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies>
2.2、依赖范围
依赖范围scope用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:1.compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
2.test:测试依赖范围。只对于测试classpath有效
3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
4.runtime:运行时提供。例如:jdbc驱动
2.3、传递性依赖
MakeFriends.jar直接依赖于HelloFriends.jar,而HelloFriends.jar又直接依赖于Hello.jar,那么MakeFriends.jar也依赖于Hello.jar,这就是传递性依赖,只不过这种依赖是间接依赖,如下图所示:2.4、可选依赖
三、仓库管理
2.2、依赖范围
依赖范围scope用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:1.compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
2.test:测试依赖范围。只对于测试classpath有效
3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
4.runtime:运行时提供。例如:jdbc驱动
2.3、传递性依赖
MakeFriends.jar直接依赖于HelloFriends.jar,而HelloFriends.jar又直接依赖于Hello.jar,那么MakeFriends.jar也依赖于Hello.jar,这就是传递性依赖,只不过这种依赖是间接依赖,如下图所示:2.4、可选依赖
三、仓库管理
3.1、Maven仓库
用来统一存储所有Maven共享构建的位置就是仓库3.2、Maven仓库布局
根据Maven坐标定义每个构建在仓库中唯一存储路径,大致为:groupId/artifactId/version/artifactId-version.packaging3.3、仓库的分类
3.3.1、本地仓库
每个用户只有一个本地仓库,默认是在~/.m2/repository/,~代表的是用户目录3.3.2、远程仓库
1、中央仓库:Maven默认的远程仓库,URL地址:http://search.maven.org/2、私服:是一种特殊的远程仓库,它是架设在局域网内的仓库
相关文章推荐
- 构件工具Maven----坐标、依赖、仓库、生命周期的简单学习
- Maven学习笔记(二)--坐标、依赖和仓库
- Maven学习笔记九:Maven坐标和依赖(坐标详解)
- Maven学习笔记十六:Maven坐标和依赖(最佳实践之归类依赖)
- Maven系列学习(1)——安装以及本地仓库和仓库镜像的配置
- Maven详解——坐标的概念以及依赖管理
- Maven学习第一节---maven入门(maven下载和环境变量以及本地仓库配置)
- Maven学习笔记十:Maven坐标和依赖(依赖的配置)
- Nexus搭建的maven仓库在build.gradle文件下的代码配置,以及依赖包引用
- Maven坐标,依赖,仓库
- 《项目管理利器Maven》学习(四):Maven核心之坐标和仓库
- Maven的坐标、仓库、依赖、范围
- Maven学习笔记十二:Maven坐标和依赖(传递性依赖)
- Mavenx学习笔记二十二:Maven仓库(从仓库解析依赖的机制)
- Maven学习笔记 仓库解析依赖的机制
- Maven系列学习(3)-坐标和依赖
- Maven学习笔记十三:Maven坐标和依赖(依赖调解)
- Maven学习笔记2-坐标与依赖
- Maven学习之坐标和依赖
- Maven学习笔记2(坐标和依赖)