使用ivy构建jar包的依赖关系

  • Post author:
  • Post category:其他




【题目】使用



ivy



构建



jar



包的依赖关系








【提要】







1








要解决的问题







2








关于网络上的



repository



介绍







3







Maven









Ivy



的工作原理和比较







4







ivy





运行环节的配置







5








配置中的细节问题








【内容】







1








要解决的问题





使用



java



架构的开源框架最为头痛的事情就是要面对一大堆相互之间存在依赖关系的



jar



包。有以下几个原因造成了它们之间关系的复杂性:





首先,



jar



包之间的依赖关系是有传递性的,即



A.jar



依赖



B.jar







B.jar



又依赖



C.ja



,以此类推



……



,这样要使用



A.jar



就必须找到所有与之有直接或间接的依赖关系的



jar



包;





其次,是依赖关系与



jar



包的不同版本密切相关,例如



hibernate-3.2.6.ga.jar



依赖



asm-1.5.3.jar



,而



spring-2.0.6.jar



依赖



asm-2.2.3.jar



,必须解决两个不同版本的



asm



之间的版本冲突;





其三是一个开源框架往往是一组



jar



包的组合,而框架间的依赖关系分为许多不同情况下的依赖,如:编译时依赖、运行时依赖、测试依赖等,不同状态下需要取用不同的



jar



包文件;





其四是



jar



包的下载、升级和管理,一个框架中



jar



包间达成的依赖关系可能是非常复杂的!管理这些



jar



包不胜其烦,一个



jar



包的升级可能导致必须升级更替一系列的



jar



包文件。










2








关于网络上的



repository



介绍






maven2



出现部分地解决了上述问题,它的思想就是自动解决



jar



的依赖关系问题,它和



IVY



一样是一个关于项目构建和测试的管理工具,理解这类工具的工作原理,首先要了解网上开源社区里面的所谓



repository



(仓库)系统,它和



maven



是配套使用的,粗略看起来,可以理解为一个在远程服务器上的一个大型的、包括了各种各样的



jar



文件的下载服务器,但是它绝不像下载服务器那样简单,我们可以实际看看它的结构:







2.1








可供下载



jar



包的地址



(



即:



maven.repo.remote)



的几个镜像站点






http://www.apache.org/dist/java-repository/





http://apache.binarycompass.org/java-repository/





http://www.bluesunrise.com/maven/





http://fisheye5.cenqua.com/browse/glassfish/repo/





http://dist.codehaus.org/





http://source.concord.org/repository/





http://www.ganet.org/maven/




版权声明:本文为linpeng111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。