【问题标题】:Getting an error "Could not load definitions from resource net/sf/antcontrib/antcontrib.properties. It could not be found."收到错误“无法从资源 net/sf/antcontrib/antcontrib.properties 加载定义。找不到。”
【发布时间】:2013-02-24 15:18:37
【问题描述】:

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

【问题讨论】:

  • 我不了解 Eclipse,但在 NetBeans 中它也安装了 Ant。但是您可以设置使用哪个安装的 Ant。您是否将 lib 放入正确的 Ant 安装中?

标签: eclipse ant ant-contrib


【解决方案1】:

您可以使用“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提供的链接:

【讨论】:

  • ant-contrib-*.jar 放入$HOME/.ant/lib 并重新启动Eclipse。这也适用于 Windows。
  • 这无济于事,因为设置正确的环境变量 ANT_HOME 也很重要。但是,在纯蚂蚁中,我在没有 Eclipse 的情况下收到此错误。
【解决方案2】:

此 StackOverflow 页面缺少的一件重要事情是,设置正确的 ANT_HOME 环境变量绝对至关重要且重要,如果没有此设置,无论您将 ant-contrib-1.0b3.jar 复制到何处,ant 都会一直报同样的错误您的文件系统。这个丢失的东西花了我几个小时。 =)

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

【讨论】:

  • 是的,Eclipse 为您配置了它。顺便说一下,如果你下载了apache-ant,解压并运行bin\ant.batbin/ant,会自动设置ANT_HOME。
【解决方案3】:

我是这样解决的:

将 JAR 添加到 Ant 运行时类路径条目中。

Window&gt;Preferences&gt;Ant&gt;Runtime&gt;Classpath

将 JAR 添加到 Ant Home Entries 或 Global Entries。

【讨论】:

    【解决方案4】:

    您似乎没有将 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>
    

    【讨论】:

      【解决方案5】:

      在您的构建 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

      【讨论】:

        【解决方案6】:

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

        在我们的例子中,在与另一个用户复制文件后它没有,给出相同的错误消息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-30
          • 2017-08-18
          • 1970-01-01
          • 2013-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-15
          相关资源
          最近更新 更多