Ant:无法创建任务或输入runtarget

时间:2014-01-28 19:21:19

标签: ant

尝试运行ant时遇到以下错误:

  

问题:无法创建任务或输入runtarget

我在mac 10.8.3上构建。

之前的研究表明我将ant-contrib-0.3.jar添加到我的ANT_HOME安装目录中,我已经完成了(实际上已经摆脱了另一个'未能创建任务或类型'错误)

我使用了ant-contrib-0.3.jar,因为研究表明这个jar被映射到这一行:

  • < taskdef resource =“net / sf / antcontrib / antcontrib.properties”/>

位于我正在使用的build.xml文件中。

该项目建立在Windows机器上(我甚至使用https://code.google.com/p/winant/来构建它)但我试图在Mac上构建它。因此,我不打算更改build.xml文件。

运行目标行的示例是:

<target name="setPASProps" depends="" description="setup the properties">
    <property name="systemname" value="PAS"/>
    <runtarget target="setSystemProps"/>
</target> 

以下是运行ant -diagnostics

的一些信息
-------------------------------------------
 ANT PROPERTIES
-------------------------------------------
ant.version: Apache Ant(TM) version 1.8.2 compiled on June 20 2012
ant.java.version: 1.7
Is this the Apache Harmony VM? no
Is this the Kaffe VM? no
Is this gij/gcj? no
ant.core.lib: /usr/share/ant/lib/ant.jar
ant.home: /usr/share/ant
-------------------------------------------
 ANT_HOME/lib jar listing
-------------------------------------------
ant.home: /usr/share/ant
ant-antlr.jar (5756 bytes)
ant-contrib-0.3.jar (17708 bytes)
ant-jmf.jar (6745 bytes)
ant-junit.jar (102350 bytes)
ant-junit4.jar (7126 bytes)
ant-launcher.jar (12321 bytes)
ant-swing.jar (7563 bytes)
ant-testutil.jar (15198 bytes)
ant.jar (1937098 bytes)

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您发布了build.xml,也会有所帮助。

如果Ant看到任务,通常会出现此错误,但定义存在问题。

这是我的建议:

  • 在您的项目中创建目录antlib/ant-contrib
  • 下载此zip file。 Ant-contrib有点奇怪的是,有一个单独的jar用于C编译和所有其他Ant任务。最新版本为1.0b3。解压缩此zip文件时,您会在此文件夹中看到ant-contrib-1.0b3.jar
  • ant-contrib-1.0b3.jar放在antlib/ant-contrib文件夹中。

现在,在build.xml中,使用以下<taskdef/>

<taskdef resource="net/sf/antcontrib/antlib.xml">
    <classpath>
        <fileset dir="${basedir}/antlib/ant-contrib"/>
    </classpath>
</taskdef>

确保目标中的 。您希望在执行任何目标之前执行此操作。

我喜欢这样做定义,因为Ant Contrib jar文件成为我项目的一部分,任何需要运行我的项目的人都不必在他们使用我的项目之前手动安装Ant Contrib jar。

查看您的build.xml,看看<Runtarget>任务的使用位置。我从未使用它,以及此任务的文档is so clear and helpful。实际上,我甚至不确定它是否有效。如果您仍然遇到问题,可以尝试删除包含此任务的已定义<target/>,并查看是否可以解决此问题。

答案 1 :(得分:0)

删除了ant-contrib-0.3.jar并将ant-contrib-1.0b3.jar和ant-contrib.jar添加到我的ANT_HOME目录中,因为这些是与https://code.google.com/p/winant/一起安装的jar(它正在windows上工作)机)。

这就是诀窍。