Ant говорит, что "buildtests" не существует, но я не могу понять, почему он ищет "buildtests" - PullRequest
2 голосов
/ 23 октября 2009

Я запускаю скрипт Ant, который является частью учебного пособия на http://maestric.com/doc/java/spring/setup

Ошибка:

BUILD FAILED Цель "buildtests" не существует в проекте "null",

Я запускаю Ant через eclipse.

Сценарий 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, когда кажется, что ошибка вызвана чем-тоэто никогда не было объявлено в моем сценарии.

Ответы [ 5 ]

1 голос
/ 04 июня 2013

Однажды у меня была похожая проблема, когда я писал скрипт Ant для выполнения списка тестовых случаев JUnit. Часть сценария:

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

где test.entry указывает класс теста, а test.methods задает «список имен разделенных запятыми методов тестового примера для выполнения» [см. задача junit ]

Однако, когда я запустил этот скрипт, указав -Dtest.methods = "foo, bar", он выдает ошибку "Target ... не существует в проекте" null "", как и ваша проблема.

Я решил эту проблему, просто убрав пробел между "foo, bar" в "foo, bar". Проблема исчезла!

Так что, возможно, вы захотите проверить, не вызвана ли такая проблема ненужными пробелами в ваших аргументах.

1 голос
/ 23 октября 2009

Я скопировал скрипт в пустой каталог и смог успешно запустить скрипт после создания папки src.

Это означает, что проблема не в самом скрипте.

Вы можете использовать ant -p для вывода списка всех доступных целей и проверки их соответствия сценарию, который вы намереваетесь выполнить.

1 голос
/ 23 октября 2009

Если вы используете Ant через Eclipse, вы проверили настройку свойств сборки для Ant Builder вашего проекта?

Щелкните правой кнопкой мыши свой проект в проводнике пакетов и перейдите в «Свойства». Затем выберите «Строители» из списка слева. У тебя там есть Строитель Муравьев? Если это так, выделите его и нажмите «Изменить ...», затем откройте вкладку «Цели», чтобы убедиться, что она не вызывает никаких целей, которые вы не ожидаете.

Большинство странностей, с которыми я сталкиваюсь при сборке через Ant в Eclipse, можно проследить до некоторых неустановленных или неустановленных свойств в используемом Ant Builder.

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

В качестве альтернативы, если вы не настроили свой Ant XML для использования через построитель Ant, и вы просто вызываете файл Ant напрямую, щелкните правой кнопкой мыши файл Ant и проверьте настройку «Запустить конфигурацию ...» в разделе «Run As», чтобы убедиться, что ничего не вышло из строя. Это может быть повторное использование настроек из вашего предыдущего файла "build.xml".

1 голос
/ 23 октября 2009

Это звучит странно. Ты получил Ant от Apache? Есть ли рядом файлы build.xml с "buildtests" в них? Это на ОС Unix? Если это так, найдите скрипт Ant, выполнив «который», а затем изучите его содержимое, чтобы узнать, пытается ли он вызвать какой-либо другой файл сборки.

0 голосов
/ 14 июня 2013

В Windows, если имя вашего проекта Eclipse (и, следовательно, путь / местоположение) содержит пробелы, попробуйте переименовать проект, чтобы использовать подчеркивания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...