【maven总结】(1) 坐标与依赖
来源:互联网 发布:ftp数据端口范围 编辑:程序博客网 时间:2024/06/08 04:29
maven可以管理项目的依赖,如何找到jar的具体位置,唯一的标识就是坐标。开发过程中需要导入项目所依赖的jar,多个项目之间依赖的管理也有原则。
1.坐标的概念
<groupId>org.sonatype.nexus</groupId><artifactId>nexus-indexer</artifactId><version>2.0.0</version><packaging>jar</packaging>
maven 的所有构件均通过坐标进行组织和管理。maven 的坐标通过 5 个元素进行定义,其中 groupId、artifactId、version 是必须的,packaging 是可选的(默认为jar),classifier 是不能直接定义的。
groupId:定义当前 Maven 项目所属的实际项目,跟 Java 包名类似,通常与域名反向一一对应。
artifactId:定义当前 Maven 项目的一个模块,默认情况下,Maven 生成的构件,其文件名会以 artifactId 开头,如 hibernate-core-3.6.5.Final.jar。
version:定义项目版本。
packaging:定义项目打包方式,如 jar,war,pom,zip ……,默认为 jar。
classifier:定义项目的附属构件,如 hibernate-core-3.6.6.Final-sources.jar,hibernate-core-3.6.6.Final-javadoc.jar,其中 sources 和 javadoc 就是这两个附属构件的 classifier。classifier 不能直接定义,通常由附加的插件帮助生成。
2.依赖
2.1.范围
compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围
test:测试依赖范围。只对测试classpath有效
provided:已提供依赖范围。对于编译和测试classpath有效
runtime:运行时依赖范围。对于测试和运行有效
system:系统依赖范围。该依赖与三种classpath的关系,和provided依赖范围完全一致。
import:导入依赖范围。
2.2传递性依赖
如果A->B->C,即A对于B的依赖范围是compile,B对于C的依赖范围是compile,那么A对于C的依赖范围是compile。此时,我们称A对于B是第一直接依赖,B对于C是第二直接依赖(根据情况的不同可能会有第三、第四……直接依赖),A对于C是传递性依赖。
2.3 依赖调解
1.路径最近者优先
2.最先声明者优先
2.4 可选依赖
可选依赖,依赖将不会得以传递。 <optional>true</optional>
2.5 排除依赖
不想引入的依赖,使用代码中用exclusions元素可以包含多个exclusion子元素。
2.6 版本统一管理
<properties>
<springframework.version>3.1.2.RELEASE</springframework.version>
</properties>
3.总结
pom是可以继承的,通常对于一个大型的项目或是多个module的情况,子模块的pom需要指定父模块的pom。利用maven可以高效管理我们的项目。
- 【maven总结】(1) 坐标与依赖
- maven坐标与依赖
- Maven(三)坐标与依赖
- Maven学习总结系列四:坐标与依赖
- Maven 坐标与依赖管理
- Maven核心:坐标与依赖
- 《Maven实战》学习总结(三)——坐标与依赖管理
- 《maven实战》读书笔记(二)——坐标与依赖
- Maven学习(二):属性、坐标与依赖
- Maven学习笔记(十)坐标与依赖
- maven详解之坐标与依赖
- Maven学习笔记(四):坐标与依赖
- maven入门二-------坐标与依赖
- Maven学习笔记2-坐标与依赖
- maven详解之坐标与依赖
- Maven实战、5.坐标与依赖
- maven详解之坐标与依赖
- maven详解之坐标与依赖
- 【Hadoop 学习】之 安装配置Hadoop
- #bzoj2235#回文图(乱搞)
- Navicat 远程连接 mysql 报10038的错误
- 二分,讨论(Median,HDU 5857)
- 初入c++ (八) c++输入和输出
- 【maven总结】(1) 坐标与依赖
- python flask,file structure ,blueprint简单应用
- java数字处理类常用方法汇总
- company
- 机器学习五 朴素贝叶斯与SVM
- Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdom
- 评论中心+站内信
- MapReduce编程基础(二)——数值概要(计算中位数、标准差)
- 怎么通过带参数的构造方法实例化Bean