21

Could not load definitions from resource net/sf/antcontrib/antcontrib.properties. It could not be found.当我尝试在 Eclipse 上构建 ant 时出现错误。所以我下载了 ant-contrib-0.6.jar 并将它保存在我/lib的 apache ant 位置,但它仍然不能解决我的问题。我也尝试过在我的系统变量中指定/lib位置。CLASSPATH我怎样才能绕过这个错误?

4

6 回答 6

32

您可以使用“classpath”元素显式提供 ant-contrib JAR 的完整路径:

<taskdef resource="net/sf/antcontrib/antlib.xml">
  <classpath>
    <pathelement location="${path-to-ant-contrib}/ant-contrib-1.0b3.jar"/>
  </classpath>
</taskdef>

编辑:链接贡献者Djacomo

于 2013-03-11T09:20:15.340 回答
7

这个 StackOverflow 页面缺少的一件重要的事情是,设置正确的 ANT_HOME env var 是绝对重要和重要的,如果没有这个设置,ant 会一直报同样的错误,不管你在文件系统上复制 ant-contrib-1.0b3.jar 的位置. 这个丢失的东西花了我几个小时。=)

但是,在纯蚂蚁中,我在没有 Eclipse 的情况下收到此错误。

于 2015-01-25T15:54:35.653 回答
6

I fixed that this way:

Add the JAR to the Ant runtime classpath entries.

Window>Preferences>Ant>Runtime>Classpath

Add the JAR to either Ant Home Entries or Global Entries.

于 2018-01-11T15:03:55.867 回答
2

看来您还没有将 ant contrib jar 安装到正确的 lib 目录中。如果您安装了多个 ANT,这可能很难做到。

我的建议是将您的 ANT 插件安装到“$HOME/.ant/lib”目录中。您可以更进一步,将流程自动化,如下所示:

<project name="ant-contrib-tasks" default="all">

    <taskdef resource="net/sf/antcontrib/antlib.xml"/>

    <target name="bootstrap">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get dest="${user.home}/.ant/lib/ant-contrib.jar" src="http://search.maven.org/remotecontent?filepath=ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar"/>
    </target>

    <target name="all">
        <for param="file">
            <fileset dir="." includes="*.txt"/>
            <sequential>
                <echo message="Found file @{file}"/>
            </sequential>
        </for>
    </target>

</project>
于 2013-03-09T07:32:51.213 回答
1

在构建 xml 中使用下面提到的代码:

<path id="ant.classpath">
<pathelement location="${ant.jarPath}/ant.jar" />
<pathelement location="${ant.jarPath}/ant-contrib-0.3.jar" />
</path>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
 <classpath refid="ant.classpath" />
</taskdef>

在您的构建属性文件中:

ant.jarPath=D:/antjars

并将 ant.jar 和 ant-contrib-0.3.jar 放在目录:D:/antjars

于 2013-09-16T10:34:12.593 回答
0

检查您是否具有对 ant-contrib jar 文件的读取权限。

In our case after copying the file with another user it did not, giving the same error message.

于 2017-01-30T16:49:32.847 回答