从Ivy依赖中定义Ant任务

时间:2013-11-12 19:19:03

标签: java ant ivy build.xml

我正在使用IvyDE来管理我的项目依赖项和Ant来构建我的项目并执行其他一些任务。

所以我的ivy.xml文件如下所示:

<ivy-module version="2.0">
<info organisation="test" module="test" revision="0-RELEASE"/>
<dependencies>
    <dependency org="com.generator" name="Generator" rev="2.0-RELEASE" />
</dependencies>
</ivy-module>

我想在build.xml文件中定义一个新任务,如下所示:

<taskdef name="generate" classname="com.Generator" />

com.Generator类包装在常春藤依赖中。

现在taskdef声明不会被编译,这是因为我没有为该类设置classpath

我的问题是,如果可以从build.xml文件引用常春藤依赖关系,那么我可以定义新任务吗?

谢谢 吉拉德

1 个答案:

答案 0 :(得分:2)

是的,你可以:

最好的方法是在ivy.xml文件中为任务添加自己的配置及其依赖项:

<configuration>
  <conf name="generator" visibility="private"/>
</configuration>

<dependencies>
  …
  <dependency org="com.generator" 
      name="Generator" rev="2.0-RELEASE" 
      conf="generator->default"/>
</dependencies>

然后您可以在build.xml

中使用它
<ivy:cachepath pathid="generator.classpath" 
    conf="generator" log="quiet"/>
<taskdef name="generate" 
    classname="com.Generator" 
    classpathref="generator.classpath"/>

您需要定义常春藤任务!