存储库和坐标

[size=x-large][b]存储库和坐标[/b][/size]
Maven 2 存储库存储 Maven 在一个项目的依赖项解析中使用过的工件集。在本地磁盘上访问本地存储库,通过网络访问远程存储库。

工件通常被打包成包含二进制库或可执行库的 JAR 文件。这被认为是工件的一个类型。但在实践中,工件也可以是 WAR、EAR 或其他代码捆绑类型。

Maven 2 利用操作系统的目录结构对存储在存储库中的工件集进行快速索引。这个存储库索引系统依赖于这种能力来通过工件的坐标 惟一标识工件。

[size=large][b]Maven 坐标[/b][/size]

Maven 坐标是一组可以惟一标识工件的三元组值。坐标包含了下列三条信息:

* [b]组 ID:[/b]代表制造该工件的实体或组织。例如,com.ibm.devworks 就是一个组 ID。

* [b]工件 ID:[/b]实际的工件的名称。例如,主体类名为 OpsImp 的项目也许会用 OpsImp 作为其工件 ID。

* [b]版本:[/b]该工件的版本号。支持的格式为 mmm.nnn.bbb-qqqqqqq-dd ,其中, mmm 是主版本号, nnn 是次版本号, bbb 代表其 bug 修复水平。 qqqqq (限定词)或 dd (构建号)也能添加到版本号中,这两项是可选项。

对 Maven 坐标的使用贯穿于 Maven 配置文件和 POM 文件中。例如,要在命名为 OpsImp 的模块上指定项目依赖项(在 1.0-SNAPSHOT 级别),pom.xml 文件应包含清单 1 所示的部分:
[b]清单 1. OpsImp 样例模块的 Maven 坐标 [/b]
<dependencies>
<dependency>
<groupId>com.ibm.devworks</groupId>
<artifactId>OpsImp</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>


特别限定词 SNAPSHOT 告诉 Maven 2:该项目或模块还处于开发状态中,它应该获取最新版的可用工件。

要将该项目指定为依赖于 JUnit 进行单元测试,可以将 JUnit 3.8.1 的坐标作为一个依赖项添加到该项目的 pom.xml 文件中,如清单 2 所示:

[b]清单 2. JUnit 依赖项的 Maven 坐标[/b]
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>

[size=large][b]深入 Maven 存储库[/b] [/size]
由于 Maven 存储库是普通的目录树,所以可以很容易地看到工件是如何存储到磁盘上的。图 3 是本地存储库的一部分,显示了 JUnit 3.8.1 工件的位置:
[b]图 3. Maven 2 存储库内幕[/b]

[img]http://dl.iteye.com/upload/attachment/184460/bc0d4a42-1ea4-3199-9e14-6c0bfd474a27.gif[/img]
从图 3 中可以看出,Maven 维护了一个工件的 POM 文件,同时也为该工件和其存储库中的 POM 维护了检验和散列。当工件在存储库间转移时,这些文件帮助确保工件的完整性。该工件已由 Maven 的依赖项管理引擎从中央存储库下载并放置到本地存储库中。

在图 4 中,坐标为 com.ibm.devworks/OpsImp/1.0-SNAPSHOT 的工件显示在本地存储库中。该工件和 POM 文件一起存放在存储库。在本例中,该工件在本地安装。

[b] 图 4. 本地存储库中的 OpsImp 工件[/b]

[img]http://dl.iteye.com/upload/attachment/184462/a4329ee4-715f-385b-845b-4b2c904cc487.gif[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值