2

我正在使用 ant.bat(在 Ant 1.7.1 中)在 Windows 2003 Server 上的 build.xml 文件中构建 all 目标。(我已将错误消息中的“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,但谷歌搜索出现了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"'

希望它有一些帮助。

4

5 回答 5

3

你有任何依赖于“ 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。

于 2009-06-11T04:10:50.543 回答
2

你能添加你正在使用的命令行吗?可能是蚂蚁同意您的观点,即没有目标“1”,但它认为您正在传递一个目标。

于 2009-06-11T04:12:05.663 回答
2

这篇文章帮助我解决了这个错误,并想分享我的问题版本。

项目“null”中不存在目标“listener”。

ANT_ARGS如果已设置,ANT 将使用环境变量。我正在使用该-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

于 2012-07-12T16:09:38.467 回答
1

Ya goose :-) 您在标题中将项目更改为“xxx”,但在错误输出中将其保留为“vireporting”。

这样猫就出局了。您不妨让我们的生活更轻松并发布 XML,因为我们帮助您(心理调试)的能力非常有限。如果您愿意,请清理您发布的 XML(希望比清理原始文件更好)。

你的评论('没有目标“1”')是有道理的,因为这就是蚂蚁告诉你的。您可能所做的是无意中创建了对那个不存在的目标的依赖。

于 2009-06-11T04:41:59.493 回答
1

事实证明,此错误消息是-DGOBUILD_AUTO_COMPONENTS= -DGOBUILD_OFFICIAL_BUILD=1命令行中“”的结果。我猜想 -D 选项中的 '=' 之后什么都没有让 Ant 感到困惑。(作为实验,我在这个以编程方式生成的命令行中将“”更改为“”,错误消息更改为“ -DGOBUILD_OFFICIAL_BUILD=1” )-DGOBUILD_OFFICIAL_BUILD=2Target "2" does not exist in the project "xxx".

删除“ -DGOBUILD_AUTO_COMPONENTS=”消除了构建失败。

如果有人能清楚地解释为什么Ant 在这种情况下会发出如此奇怪的错误消息(或者如果正确看待它可能并不奇怪),我会接受你的回答。

于 2009-06-11T17:42:58.237 回答