【maven总结】(1) 坐标与依赖
? ? ? ? ? ?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 是不能直接定义的。
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> 3.总结? ? pom是可以继承的,通常对于一个大型的项目或是多个module的情况,子模块的pom需要指定父模块的pom。利用maven可以高效管理我们的项目。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |