Welcome 微信登录

首页 / 软件开发 / JAVA / ivy中文参考文档(11)-ant任务

ivy中文参考文档(11)-ant任务2012-08-01 BlogJava sky1) 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>