1) ant任务
使用ivy的主要和最频繁的方式是在ant构建文件中。不过,ivy也可以作为独立的应用被调用。
如果你使用ant版本1.6.0 或更高,你仅仅需要添加ivy的命名空间到你的项目中(你的project标签的属性)
xmlns:ivy="antlib:org.apache.ivy.ant"
这样你就可以调用ivy任务了。
如果你想让你的构建处理ivy.jar,不管是在ant的lib目录还是在本地的lib目录。你可以类似这样使用任务定义
<path id="ivy.lib.path">
<fileset dir="path/to/dir/with/ivy/jar" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
结合项目命名空间中的antlib定义,它将从你的ant类库或者本地目录(在这个例子中试path/to/dir/with/ivy/jar)装载ivy类。
如果你使用ant1.5.1或者更高,你不得不定义你在你的构建文件中使用的任务。例如:
<taskdef name="ivy-configure" classname="org.apache.ivy.ant.IvyConfigure"/>
<taskdef name="ivy-resolve" classname="org.apache.ivy.ant.IvyResolve"/>
<taskdef name="ivy-retrieve" classname="org.apache.ivy.ant.IvyRetrieve"/>
<taskdef name="ivy-deliver" classname="org.apache.ivy.ant.IvyDeliver"/>
<taskdef name="ivy-publish" classname="org.apache.ivy.ant.IvyPublish"/>
注意:上面列出的任务并不是详尽。为了完整的有对应类的任务列表,请查看svn中的或者你使用的版本的antlib.xml
然后你可以使用任务,但是检查他们的名字,下面的例子假设你使用ivy命名空间(ivy:xxx任务),不过对于ant1.5你不能使用命名空间 ,如果你想遵循上面的任务定义可以使用ivy-xxx任务。
如果你使用低于1.5.1的ant版本,你不能使用ivy任务...你应该作为外部程序来调用ivy。
2) 从ant中调用ivy: 开始步骤
一旦你的构建文件可以调用ivy任务,最简单的使用ivy的任务就是不带任何参数的调用ivy的retrieve任务。
<ivy:retrieve />
这将使用默认值调用ivy,在很多项目中是可行的。实际上,它等同于
<target name="resolve">
<ivy:configure />
<ivy:resolve file="${ivy.dep.file}" conf="${ivy.configurations}" />
<ivy:retrieve pattern="${ivy.retrieve.pattern}" conf="${ivy.configurations}" />
</target>