taskdef的类路径?

时间:2010-12-22 16:12:01

标签: ant classpath taskdef

我在Ant中定义了一个新任务。 我将其导出为jar并添加到我的构建文件中:

<taskdef classname="X" classpath="Y.jar"/>

问题是这在运行时失败了。 它告诉我它没有找到班级。 通过将jar添加到类路径中,它已得到纠正。

我的问题是:有没有办法可以从Ant构建文件中引用我的jar而不更改类路径?

2 个答案:

答案 0 :(得分:9)

如果您知道jar的路径,则在ant脚本中可以为自己的任务定义类路径。

<taskdef name="myTaskName" classname="com.myorg.myclass">
  <classpath>
    <pathelement location="pathToMyJar.jar"/>
  </classpath>
</taskdef>

答案 1 :(得分:1)

是。我假设您查看了taskdef taskdef,它只显示了任务名称和实现类。但是,typedef子类classpath,如果您查看后者的doc,则会看到还有-lib属性。

HOWEVER ,使用此属性意味着您的ant脚本与特定环境相关联;它们不是很便携。更好的方法是使用{{1}} doc将类路径传递给Ant。