11

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

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

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

我的问题是:有没有一种方法可以在不更改类路径的情况下从 Ant 构建文件中引用我的 jar?

4

2 回答 2

11

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

<taskdef name="myTaskName" classname="com.myorg.myclass">
  <classpath>
    <pathelement location="pathToMyJar.jar"/>
  </classpath>
</taskdef>
于 2010-12-22T16:33:24.157 回答
1

是的。我假设您查看了文档taskdef它只显示了任务名称和实现类。但是,taskdefsubclasses typedef,如果您查看后者的文档,您会发现还有一个classpath属性。

但是,使用此属性意味着您的 ant 脚本与特定环境相关联;它们不是很便携。更好的方法是使用-lib 调用选项将类路径传递给 Ant 。

于 2010-12-22T16:26:50.723 回答