【问题标题】:Ant <taskdef> problem - classname not foundAnt <taskdef> 问题 - 找不到类名
【发布时间】:2010-07-14 05:36:15
【问题描述】:

假设我有一个已经给出的 build.xml。我被命令添加自己的任务以检查某些条件,如果未设置则让构建失败。

在这个 build.xml 中已经定义了一些任务。所以我想我可以简单地编写自己的任务,将它和其他人一样放在同一个包中,它会起作用。

<property name"build-dir" value="../base-build" />

<path id="classpath.build">
    <fileset dir="${build-dir}/lib" includes="*.jar" />
</path>

<taskdef name="givenTask" classname="test.build.somePackage.GivenTask" classpathref="classpath.build" />

<taskdef name="myAddedTask" classname="test.build.someOtherPackage.MyAddedTask" classpathref="classpath.build" />

build.xml 位于目录 base-build 中,包位于 build-tools 中。 所以我的问题是:如果我像上面那样复制 taskdef 并且它不起作用,这是什么原因?我需要添加对路径的引用吗?

【问题讨论】:

  • classname 之后的等号(例如,应该是 classname="test.build....")真的没有,还是只是您的帖子中的拼写错误?
  • 对不起,这些错误只是拼写错误。我修好了。
  • 当您说“不起作用”时,Ant 是否报告了错误?如果没有,您可以尝试运行“ant -v”来查看 Ant 引用的路径。

标签: java ant


【解决方案1】:

classname"test.package.build.someOtherPackage.MyAddedTask" - 我们这里有两个错误,可能是拼写错误:首先,我们在classname 之后错过了一个=,其次,包名无效,因为它包含一个java 关键字(package)。

如果 sn-p 是从原始代码复制和粘贴的,那么您必须对其进行修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2013-09-04
    • 2010-10-03
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多