【问题标题】:Ant says "buildtests" does not exist, but I can't see why it is looking for "buildtests"Ant 说“buildtests”不存在,但我不明白它为什么要寻找“buildtests”
【发布时间】:2009-10-23 06:10:59
【问题描述】:

我正在运行一个 Ant 脚本,它是 http://maestric.com/doc/java/spring/setup 教程的一部分

错误是:

构建失败 项目“null”中不存在目标“buildtests”。

我正在通过 Eclipse 运行 Ant。

Ant 脚本是:

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="build">

  <property file="build.properties"/>
  <property name="src.dir" value="src"/>
  <property name="build.dir" value="classes"/>

  <path id="build.classpath">
      <fileset dir="lib">
          <include name="*.jar"/>
      </fileset>
      <fileset dir="${appserver.lib}"> <!-- servlet API classes: -->
          <include name="servlet*.jar"/>
      </fileset>
      <pathelement path="${build.dir}"/>
  </path>  

  <target name="build">
      <mkdir dir="${build.dir}"/>
      <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true"     deprecation="false" optimize="false" failonerror="true">
          <src path="${src.dir}"/>
      <classpath refid="build.classpath"/>
      </javac>
  </target>

  <target name="clean" description="Clean output directories">
      <delete>
          <fileset dir="${build.dir}">
              <include name="**/*.class"/>
          </fileset>
          </delete>
  </target>

</project>

我经常在使用 Ant 时遇到这样的问题,似乎错误是由我的脚本中从未声明过的东西引起的。

【问题讨论】:

  • 你能准确地说一下ant是如何被调用的吗?
  • “通过日食”不是很精确。您是否双击大纲中的目标?您是否已将 eclipse 配置为使用构建器?还有什么?

标签: ant


【解决方案1】:

这听起来很奇怪。你是从 Apache 得到 Ant 的吗?附近是否有任何带有“buildtests”的 build.xml 文件?这是在基于 Unix 的操作系统上吗?如果是这样,通过执行“which”找到 Ant 脚本,然后检查其内容以查看它是否正在尝试调用其他构建文件。

【讨论】:

  • 我正在使用 Eclipse 内置的 Ant
【解决方案2】:

我将脚本复制到一个空目录中,并在创建src 文件夹后成功调用脚本。

这意味着问题不在此脚本本身。

您可以使用ant -p 列出所有可用的目标并检查它们是否与您打算执行的脚本匹配。

【讨论】:

    【解决方案3】:

    如果您通过 Eclipse 运行 Ant,您是否检查过项目的 Ant Builder 的构建属性设置?

    在包资源管理器中右键单击您的项目,然后转到“属性”。然后从左侧的列表中选择“Builders”。你那里有 Ant Builder 吗?如果是这样,突出显示它并点击“编辑...”,然后检查“目标”选项卡以确保它没有调用您不期望的任何目标。

    我在 Eclipse 中通过 Ant 构建时遇到的大部分奇怪问题都可以追溯到我正在使用的 Ant Builder 下的一些错误设置或未设置的属性。

    ===============================

    或者,如果您尚未将 Ant XML 配置为通过 Ant 构建器使用,而您只是直接调用 Ant 文件,请右键单击您的 Ant 文件并检查“运行配置...”下的设置“运行方式”以确保没有任何不妥之处。它可能会重复使用您以前拥有的“build.xml”文件中的设置。

    【讨论】:

      【解决方案4】:

      当我编写一个 Ant 脚本来执行 JUnit 测试用例列表时,我曾经遇到过类似的问题。脚本的一部分是:

      <test name="${test.entry}" methods="${test.methods}"/>
      

      test.entry 指定测试类,test.methods 指定“要执行的测试用例方法名称的逗号分隔列表”[参见junit task]

      但是,当我指定 -Dtest.methods="foo, bar" 运行此脚本时,它会抛出错误“目标...在项目“null”中不存在”,就像您的问题一样。

      我解决了这个问题,只需将“foo, bar”之间的空格删除为“foo,bar”。问题解决了!

      因此,也许您可​​能想检查这样的问题是否是由您的参数中不必要的空格引起的。

      【讨论】:

        【解决方案5】:

        在 Windows 上,如果 Eclipse 项目的名称(以及路径/位置)包含空格,请尝试重命名项目以使用下划线。

        【讨论】:

          猜你喜欢
          • 2021-07-11
          • 1970-01-01
          • 1970-01-01
          • 2018-05-22
          • 2010-11-08
          • 2020-08-27
          • 1970-01-01
          • 1970-01-01
          • 2019-08-26
          相关资源
          最近更新 更多