让开发自动化 利用 Ivy 管理依赖项

让开发自动化 利用 Ivy 管理依赖项

ID:47110926

大小:108.00 KB

页数:8页

时间:2019-08-05

让开发自动化 利用 Ivy 管理依赖项_第1页
让开发自动化 利用 Ivy 管理依赖项_第2页
让开发自动化 利用 Ivy 管理依赖项_第3页
让开发自动化 利用 Ivy 管理依赖项_第4页
让开发自动化 利用 Ivy 管理依赖项_第5页
资源描述:

《让开发自动化 利用 Ivy 管理依赖项》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实际上,所有软件开发项目都必须依靠来自其他项目的源代码。例如,许多项目可能依靠log4j等日志记录工具和Struts之类的Web框架。您的开发团队不会维护其他项目的源代码,但要依靠其API来实现项目中的定制软件。您的软件所依靠的其他项目数量越多(包括这些项目自身的依赖项),构建软件就变得越复杂。  我已经看到许多团队使用各种不完善的技术,尝试解决这种难题:  将全部有依赖关系的项目(JAR文件)放在一个目录中,此目录将签入项目的版本控制存储库。这种技术不必要地增加了存储库的大小,使得管理版本差异极为困难。  将有依赖关系的JAR分配到一个公

2、共文件服务器上,使团队无法控制版本更改。  手动将JAR文件复制到各开发人员工作站上的指定位置。这种方法使得确定丢失的文件或修正版本极为困难。  执行一条HTTPGet命令,将文件下载到开发人员的工作站,手动执行或将其作为自动构建的一部分。这种技术会造成未受管理的JAR文件。  我参加过一个中型项目,包含1,000个Java类和100多个有依赖关系的JAR文件。(我们选择了第一种不完美的技术:将所有JAR签入项目的版本控制存储库。)图1显示了可能在此类项目中看到的一小部分依赖项的类型:  图1.Web开发项目中的JAR依赖项示例  图1表现

3、出,Brewery项目的源代码依赖于Hibernate、Struts2、MySQLConnector和Cobertura。而Cobertura又依赖其他JAR,如asm-2.2.1.jar、jakarta-oro-2.0.8.jar和log4j-1.2.9.jar。此外,asm-2.2.1.jar依赖asm-tree-2.2.1.jar。这仅仅是可能出现的各类嵌套依赖项的一个简单示例。即便是某个JAR的版本不正确,您也会体验到难以排除的问题,例如编译错误或意料之外的行为。  ApacheMaven构建管理和项目管理工具已经吸引了Java开发

4、人员的注意。Maven引入了JAR文件公共存储库的概念,可通过公开的Web服务器访问(称为ibiblio)。Maven的方法减少了JAR文件膨胀的情况,不会占用大多数版本控制存储库。但使用Maven时,它会鼓励您采用其“惯例优于配置”的方法来构建软件,这会制约您定制构建脚本的灵活性。  如果您多年来一直使用ApacheAnt,现在希望获得使用公共存储库的优势,又该如呢?您是否不得不接受Maven的构建方法来获得这些收益?幸运的是,答案是否定的,这是由于一种称为ApacheIvy的工具—Ant的一个子项目。Ivy提供了最一致、可重复、易于维护

5、的方法,来管理项目的所有构建依赖项(在参考资料部分中可以找到Maven和Ivy的比较)。这篇文章介绍了安装和配置Ivy来管理依赖项的基础知识,指出了可参考的更多信息。  入门  开始使用Ivy非常简单,只需创建两个Ivy特有的文件,添加一些Ant目标即可。Ivy特有的文件是ivy.xml和一个Ivy设置文件。ivy.xml文件中列举了项目的所有依赖项。ivysettings.xml文件(可以随意为此文件命名)用于配置从中下载有依赖关系的JAR文件的存储库。  清单1展示了一个简单的Ant脚本,它调用了两个Ivy任务:ivy:settings

6、和ivy:retrieve。  清单1.使用Ivy的简单Ant脚本    在清单1中,ivy:settings定义了Ivy设置文件。对ivy:retrieve的调用从ivy.xml声明的一个存储库中检索JAR文件。  安装Ivy  下载并使用Ivy的方法有几种。第一种是手动将IvyJAR文件下载到Antlib目

7、录中,也可下载到Ant脚本的类路径中定义的某个目录中。我迷上了自动化,所以更倾向于使用自动化替代方案:下载Ivy的JAR文件,在Ant目标中配置类路径。清单2展示了这种技术的示例:  清单2.使用Ant自动安装Ivy

8、">  

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。