快速业务通道

ivy教程(5)-双重解析器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

ivy教程(5)-双重解析器

时间:2011-08-02 BlogJava sky''s blog

在一些情况下,会发生这样的事情:你的模块描述符(ivy文件,maven pom, ...)被放置在一个地方, 而模块的制品(jars,...)在另外一个地方。

双重解析器用于满足这种类型的需求,而这个教程将展示如何使用它。

1) 项目描述

让我们看一下你的ivy发行包里面的src/example/dual目录.

它包含一个构建文件和3个目录:

* settings: b包含ivy设置文件

* repository: ivy文件的示例仓库

* project: 利用ivy双重解析器的项目

1. dual项目

项目非常简单,只包含一个简单的类: example.Hello

它依赖两个类库: Apache commons-lang 和 Apache commons-httpclient.

这里是项目的内容:

* build.xml: 项目的ant构建文件

* ivy.xml: ivy项目文件

* src\example\Hello.java: 项目仅有的一个类

让我们看一下ivy.xml文件:

<ivy-module version="1.0">      <info organisation="org.apache" module="hello-ivy"/>      <dependencies>          <dependency org="commons-httpclient" name="commons-httpclient" rev="2.0.2"/>          <dependency org="commons-lang" name="commons-lang" rev="2.0"/>      </dependencies> </ivy-module>

如你所见,这里没有任何特殊的东西...实际上,这就是ivy的原理: 保持ivy文件独立于依赖解析的方 式。

ivy教程(5)-双重解析器(2)

时间:2011-08-02 BlogJava sky''s blog

2. ivy设置

ivy设置在settings目录中;它只包含一个文件: ivysettings.xml.

<ivysettings>    <settings defaultResolver="dual-example"/>    <resolvers>      <dual name="dual-example">        <filesystem name="ivys">          <ivy pattern="${ivy.settings.dir}/../repository/[module]-ivy- [revision].xml" />        </filesystem>        <ibiblio name="ibiblio" m2compatible="true" usepoms="false" />      </dual>    </resolvers> </ivysettings>

这里我们配置了一个解析器,默认的,它是一个双重解析器。这个双重解析器有两个子解析器:第一 个被称为是双重解析器的"ivy"或"metadata"解析器,而第二个被称为"artifact" 解析器。重要的是双重 解析器必须严格的拥有两个遵循这个给定顺序的解析器。

metadata解析器,这里是一个文件解析器,仅仅用于查找模块的描述符,在这个案例中是ivy文件。这 个解析器给出的设置阐述说所有ivy文件都在同一个目录中,命名形如[module]-ivy-[revision].xml.如 果我们检查仓库目录,我们可以确认它包含一个名为commons- httpclient-ivy-2.0.2.xml的文件。它满 足给定的模式并将因此被这个解析器找到。

artifact解析器就是一个ibiblio 解析器,配置为m2compatible 模式以便使用maven2仓库,属性 usepoms="false" 确保它不会使用maven2 metadata。注意,这并不是严格要求,因为在双重解析器中的 第二个解析器(artifact解析器)本来就不会被要求查找模块metadata。

2) walkthrough

step 1 : 准备

打开一个dos或者shell窗口,并进去"dual"目录

step 2 : 清理

在提示符下: ant

这将清理整个项目目录树(已编译的类和获得的libs)和ivy缓存。

你可以再每次你想清理这个例

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号