Ivy是什么

Ivy是一个跟踪管理项目直接以来关系的工具。Ivy具有良好的灵活性和可配置性,使其可以适应各种不同的依赖管理和构建过程要求;虽然Ivy作为依赖管理工具,其可以与Apache Ant进行紧密集成,在依赖管理中充分利用Ant提供的强大的任务功能。Ivy是一个开源项目,它提供了很多强大的功能,但是最受欢迎和最有用的特性是它的灵活性、与ant集成、传递依赖管理。

下面我们通过一个简单的例子看一下Ivy怎么管理依赖的。

Ivy.xml

<ivy-module version="2.0">
<info organisation="wufengtinghai" module="wufengtinghai.alm"/>
<dependencies>
<dependency org="org.apache.commons" name="commons-collections4" rev="4.0"/>
</dependencies>
</ivy-module>

首先Ivy-module元素中的version定义了此文件使用的ivy的版本。在info元素中你可以定义自己的组织信息和模块的名称;dependency元素定义具体的依赖信息,我们使用org、name和rev来唯一标识依赖项。其中org是组织信息,name是模块名称,rev是模块的版本。那在实际的开发中我们需要的特定依赖怎么在此文件中定义呢?Ivy默认使用maven2组件仓库,所以我们可以去mvnrepositoy.com找到我们需要的模块信息,具体的信息如下

我们可以看到图中有各种依赖管理工具定义依赖的xml。

Build.xml

Ivy与ant集成是通过在ant的构建文件里定义ivy任务实现调用ivy的功能,从而实现依赖管理的。构建文件的内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
2015年6月6日 下午3:09:34 ivy
description hou
====================================================================== -->
<project name="ivyWithDefaultSettingBuild" default="default" xmlns:ivy="antlib:org.apache.ivy.ant">
<description>
使用ivy的基本配置
</description>
<property name="libdir" value="../lib"></property> <!-- =================================
target: default
================================= -->
<target name="default" description="description">
<ivy:retrieve />
</target> <target name="clearIvyCache" description="description">
<ivy:cleancache/>
</target> </project>

我们可以看到只需要在构建文件中引入ivy的命名空间即可,然后就可以声明ivy任务实现依赖的管理。在这里retrieve任务会使用默认的配置管理ivy.xml中定义的依赖。

通过ant命令执行

在eclipse里通过ant执行

在eclipse里通过ivyIDE执行

使用Ivy管理项目中的依赖的更多相关文章

  1. itest 开源测试管理项目中封装的下拉列表小组件:实现下拉列表使用者前后端0行代码

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景       像easy ui 之类的纯前端组件,也有下拉列表组件,但是使用的时候,每个下拉列表,要配一个URL ...

  2. 管理项目中的贴图-Texture overview插件

    Texture overview插件管理项目中的贴图 1. Assetstore地址 2. 总览项目中所有贴图 3. 针对不同平台的贴图压缩设置 在插件的右上角 4. 支持多选批量修改 5. 点击表头 ...

  3. 在 xunit 测试项目中使用依赖注入

    在 xunit 测试项目中使用依赖注入 Intro 之前写过几篇 xunit 依赖注入的文章,今天这篇文章将结合我在 .NET Conf 上的分享,更加系统的分享一下在测试中的应用案例. 之所以想分享 ...

  4. 用Apache Ivy实现项目里的依赖管理

    Apache Ivy是一个管理项目依赖的工具. 它与Maven  Apache Maven 构建管理和项目管理工具已经吸引了 Java 开发人员的注意.Maven 引入了 JAR 文件公共存储库的概念 ...

  5. 用Apache Ivy实现项目里的依赖管理 分类: C_OHTERS 2014-07-06 18:11 564人阅读 评论(0) 收藏

    Apache Ivy是一个管理项目依赖的工具. 它与Maven  Apache Maven 构建管理和项目管理工具已经吸引了 Java 开发人员的注意.Maven 引入了 JAR 文件公共存储库的概念 ...

  6. 查找IDEA 项目中的依赖包存放在.m2位置

    原因:在maven项目pom.xml中添加依赖,可能由于网络不好,下载不完全,导致再次下载一直报错. 就会导致出现依赖一直报错.

  7. 使用iconfont管理项目中的字体图标

    先来说说字体图标的好处: 很容易任意地缩放: 很容易地改变颜色: 很容易地产生阴影: 可以拥有透明效果: 一般来说,有先进的浏览器支持: 可以使用CSS来装饰(可以得到CSS很好支持): 可以快速转化 ...

  8. iOS之多控制器管理--项目中的常见文件

    项目中的常见文件 内容大纲: 1.LaunchScreen 2.info.plist文件 3.pch文件 1.LaunchScreen xcode5和xcode6区别 1.xcode6没有Framew ...

  9. spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...

随机推荐

  1. typedef 与指针、多维数组

    1.在typedef中使用指针往往会带来意外的结果.如下: typedef string *pstring; const pstring cstr; 绝大数人刚开始都会认为cstr是一种指针,它指向c ...

  2. (转)Jquery最实用的实例及源码(http://www.cnblogs.com/kingfly/archive/2012/12/05/2802539.html)

    1:窗口拖动 http://jqueryui.com/resizable/#max-min 2:导航条前后顺序拖动 http://jqueryui.com/sortable/ 3:类似百度首页板块顺序 ...

  3. tomcat(二)--tomcat结构

    Tomcat结构及组件介绍 上面的层次结构在server.xml中有体现 <Server> <Service> <Connector> <Engine> ...

  4. 使用afinal下载文件并且在状态栏中显示下载的进度

    2013年10月23日,今天是在“我在找你信息服务有限公司”第一天上班,公司给提出了这样一个要求:下载本公司的app,并且在下载的过程中要在状态栏中显示下载的进度,并且,可以暂停和继续下载. 下面是我 ...

  5. [linux] 结构化命令-for

    1 for命令 # for:迭代循环:默认空格为分隔符 for var in list do commands done 1.1 读取列表中的值 #!usr/bin/bash for test in ...

  6. C# 自定义FileUpload控件

    摘要:ASP.NET自带的FileUpload控件会随着浏览器的不同,显示的样式也会发生改变,很不美观,为了提高用户体验度,所以我们会去自定义FileUpload控件 实现思路:用两个Button和T ...

  7. Servlet下载文件和http响应

    下载文件等: 1.得到公共的内容ServletContext sc = this.getServletContext(); 2.在链接名字后面加个? 一个参数?参数1=值 两个参数?参数1=值& ...

  8. C# 获取屏幕的大小

    原文地址:http://www.cnblogs.com/zp89850/archive/2011/08/23/2151052.html C# 获取屏幕的大小 WinForm: int iActulaW ...

  9. JS 关闭页面事件

    主页面调用:<script src="<%=ResolveUrl("../JS/QuitJS.js") %>" type="text ...

  10. php 使用 极光推送 类

    <?php /** * 安卓和苹果消息主推 */ class JPush extends CComponent { private $_push_body = array(); private ...