您的位置:首页 > 其它

(九)maven核心概念-坐标

2016-08-09 10:01 232 查看
maven的最大的功能是管理项目依赖,为了方便的自动化的解析java构件(jar,war等文件),maven需要将它们唯一标识,这是依赖管理的基础,每个java构件都要有自己的唯一标识,这个唯一标识就是坐标。
回想一下,在没有使用maven之前,你开发中是如何管理项目依赖的,比如你的项目中需要使用到Apache-common里的jar时,你去Apache的网站上找到相关的项目,下载到你的机器,解压,找到lib目录从里面拷贝相应的jar文件到你的项目,如果你的项目需要mybatis的jar,你又要到mybatis网站上去找,重复之前的步骤。你的很多时间浪费在网站搜索查找中,更糟糕的情况是,jar文件间存在依赖关系和版本兼容问题,你只能一次次的启动项目去试。为了管理这些依赖,maven引入了坐标的概念,即任何一个构件都可以使用maven坐标唯一标识,maven坐标元素包括groupId、artifactId、version、packaging、classifier。每个元素的代表的意义如下。
groupId:     一个唯一的组织或者项目
artifactId:     项目名称(模块)
version:     项目当前版本
packaging:     项目的打包方式
classifier:     用来帮助定义构建输出的一些附属构件,比如javadoc、sources等,具体参见官方文档
 
现在一个依赖的maven坐标就可以表示为如下形式:groupId:artifactId:packaging:classifier:version
只要我们提供了正确的坐标,maven就能找到对应的构件,maven是从哪里找到这些构件的,答案就在上一节我们讲的repository中,maven内置了一个中央仓库的地址,默认是http://repo1.maven.org/maven2,中央仓库包含了世界上大部分流行的开源项目构件,Maven在需要时就会从中央仓库下载。在实际使用中以上的5个元素,groupId、artifactId、version是必须定义的,packaging是可选的(默认为jar),classifier是不能直接定义的,也是可选的。pom文件中常用的依赖声明方式为:
 
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>

 
参考资料:https://maven.apache.org/pom.html

原文地址:http://ittechcourse.com/archives/68
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: