Что может вызвать сообщение об ошибке «Цель« 1 »не существует в проекте« xxx ». ' работает Ant на Windows? - PullRequest
2 голосов
/ 11 июня 2009

Я использую ant.bat (в Ant 1.7.1) для построения цели all в файле build.xml на Windows 2003 Server. (Я заменил «xxx» в сообщении об ошибке на имя проекта в этом файле.)

Он успешно строится, но затем заканчивается:

2009-06-10 17:26:03 | all:
2009-06-10 17:26:03 | 
2009-06-10 17:26:03 | BUILD FAILED
2009-06-10 17:26:03 | Target "1" does not exist in the project "xxx". 

... и возвращает ненулевой код ошибки.

Я безуспешно искал build.xml для поиска всего, что может привести к этой ошибке. (Конечно, нет цели "1", и нет никаких зависимостей, которые могли бы разрешить "1".)

Я надеюсь, что кто-то там вспомнит, что видел это. Я не ожидаю, что кто-нибудь отладит XML для меня, но поиск Google обнаружил http://simile.mit.edu/mail/ReadMsg?listId=9&msgId=2735,, который содержит «Я нашел ветку электронной почты по этой проблеме и буду повторите попытку. ". Хотел бы я найти эту тему.

Обновление - вот командная строка:

D:/build/toolchain/noarch/ant-1.7.1/bin/ant.bat all  -DBRANCH_NAME="main" -DBUILD_NUMBER="66675" -DCHANGE_NUMBER="1061789" -DGOBUILD_AUTO_COMPONENTS= -DGOBUILD_OFFICIAL_BUILD=1 -DGOBUILD_VICLIB_ROOT=d:/build/ob/bora-66675/compcache//viclib/ob-65655/windows -DGOBUILD_VIMBASE_ROOT=d:/build/ob/bora-66675/compcache//vimbase/ob-64494/windows -DOBJDIR="beta" -DPRODUCT_BUILD_NUMBER="82" -DPUBLISH_DIR="d:/build/ob/bora-66675/publish" -DRELTYPE="beta" -DREMOTE_COPY_SCRIPT="D:/build/toolchain/win32/python-2.5/python.exe D:/build/gobuild/script/gobuildc.py bora-66675"'

Надеюсь, это поможет.

Ответы [ 5 ]

3 голосов
/ 11 июня 2009

Есть ли у вас цели, которые зависят от "1"? Возможно из-за опечатки?

<target name="SomeTarget" depends="1">
   ....
</target>

Обновление: вы объяснили (перефразировал), что сообщение об ошибке было результатом (частичной) командной строки

-DGOBUILD_AUTO_COMPONENTS= -DGOBUILD_OFFICIAL_BUILD=1

Хотя между этими двумя операторами определения и есть пробел, он рассматривается следующим образом:

-DGOBUILD_AUTO_COMPONENTS=-DGOBUILD_OFFICIAL_BUILD=1

потому что что-то , как ожидается, последует за '='. И похоже, что второй '=' рассматривается как пробел, возможно, из-за того, что ANT запутан. Я бы не ожидал этого. Правильный способ сделать то, что вы хотите сделать, это:

-DGOBUILD_AUTO_COMPONENTS="" -DGOBUILD_OFFICIAL_BUILD=1

Таким образом, что-то следует за знаком равенства, и ANT не запутается.

2 голосов
/ 12 июля 2012

Эта публикация помогла мне устранить эту ошибку и хотела поделиться моей версией проблемы.

Целевой "слушатель" не существует в проекте "null".

ANT будет использовать переменную окружения ANT_ARGS, если она установлена. Я использовал опцию -listener и установил эту опцию в моем Windows envvar, ANT_ARGS. Когда я вставил параметры в Env Var:

-listener org.apache.tools.ant.listener.Log4jListener -lib D:\apache-ant-1.7.1\lib

Мне не хватало знака «минус» перед опцией «слушатель».

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

2 голосов
/ 11 июня 2009

не могли бы вы добавить командную строку, которую вы используете. может быть, что муравей согласен с вами, что нет цели «1», но он верит, что вы пропускаете одну.

1 голос
/ 11 июня 2009

Оказывается, это сообщение об ошибке является результатом "-DGOBUILD_AUTO_COMPONENTS= -DGOBUILD_OFFICIAL_BUILD=1" в командной строке. Я полагаю, что ничего не стоящее после '=' в этой опции -D сбивает с толку Ant. (В качестве эксперимента я изменил «-DGOBUILD_OFFICIAL_BUILD=1» на «-DGOBUILD_OFFICIAL_BUILD=2» в этой программно сгенерированной командной строке, а сообщение об ошибке изменилось на «Target "2" does not exist in the project "xxx".»)

Удаление «-DGOBUILD_AUTO_COMPONENTS=» устранило ошибку сборки.

Если кто-то может четко объяснить , почему Муравей выдает такое странное сообщение об ошибке в этом случае (или, возможно, почему не странно, если смотреть на него правильно), я приму ваш ответ.

1 голос
/ 11 июня 2009

Ya goose :-) Вы изменили проект на "xxx" в заголовке, но оставили его как "vireporting" в выводе ошибки.

Значит, кот из сумки. Вы также можете упростить нашу жизнь и опубликовать XML, поскольку наша способность помочь вам (экстрасенсорная отладка) сильно ограничена. Если вы хотите, очистите отправляемый вами XML (надеюсь, лучше, чем вы очистили оригинал).

И ваш комментарий («Нет цели« 1 »») имеет смысл, поскольку именно это говорит вам муравей. Возможно, вы случайно создали зависимость от этой несуществующей цели.

...