maven 坐标:
坐标 其实就是 通过几种不同的元素描述来找到其对应的构件。
maven 定义坐标的元素有:
1. groupId : 定义当前maven 项目隶属的实际项目,一般是域名的反向写法 (必选)
2. artifactId : 定义实际项目中的一个maven项目 (必选)
3. version : 定义该maven 项目当前所处的版本 (必选)
4. packaging : 定义该maven项目的打包方式 , 用户描述该包是什么格式的,是jar包 ? 还是war包 ? 还是?(可选)
5. classifier : 用来帮助定义构建输出的一些附属构件
各种依赖:
传递性依赖
依赖调解
可选依赖
排除依赖
归类依赖
优化依赖
仓库:
在maven项目的目录下,没有诸如 lib 这样用来存放依赖文件的目录
构件的物理表示方式是文件,maven 通过仓库来统一管理这些文件。
maven 的仓库分类:
1. 本地仓库
2. 远程仓库 (中央仓库)
仓库流程:
当maven根据坐标寻找构件的时候,首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在些构件,或者需要查看是否 有更新的构件版本,maven就会去远程仓库查发,发现需要的构件之后,下载到本地仓库再使用。如果本地仓库和远程仓库都没有需要的构件,maven 就会报错。
私服:
私服是一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库,内部的项目还能部 署到私服上供其他项目使用。
其它公开的远程仓库:
1. Java.net Maven库
2. JBoss Maven 库