【问题标题】:What could cause the error message 'Target "1" does not exist in the project "xxx".' running Ant on Windows?什么可能导致错误消息“项目“xxx”中不存在目标“1”。在 Windows 上运行 Ant?
【发布时间】:2009-06-11 04:08:05
【问题描述】:

我在 Windows 2003 Server 上使用 ant.bat(在 Ant 1.7.1 中)在 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"'

希望对你有所帮助。

【问题讨论】:

  • 您在哪个版本的 Windows 上运行它?

标签: windows ant target


【解决方案1】:

您是否有任何依赖于“1”的目标?可能是笔误?

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

更新:您解释(解释)错误消息是(部分)命令行的结果

-DGOBUILD_AUTO_COMPONENTS= -DGOBUILD_OFFICIAL_BUILD=1

虽然这两个定义语句之间有一个空格,但它的处理方式如下:

-DGOBUILD_AUTO_COMPONENTS=-DGOBUILD_OFFICIAL_BUILD=1

因为 something 预计会跟随'='。似乎第二个'=' 被视为空白,可能是因为 ANT 被混淆了。我没想到会这样。做你想做的事情的正确方法是:

-DGOBUILD_AUTO_COMPONENTS="" -DGOBUILD_OFFICIAL_BUILD=1

这样,something 跟在等号后面,ANT 就不会混淆了。

【讨论】:

  • 没有依赖于“1”的目标。 (我希望就是这样。)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    项目“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 而被隐藏了。

    【讨论】:

      【解决方案4】:

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

      所以猫从袋子里出来了。您不妨让我们的生活更轻松并发布 XML,因为我们帮助您(心理调试)的能力非常有限。如果需要,请清理您发布的 XML(希望比清理原始文件更好)。

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

      【讨论】:

      • 糟糕。我觉得自己像只鹅。我不确定我学到了什么,但我想要更加小心。一只猫可能不在袋子里,但如果里面还有更多,我不想让它们出去。如果我的同事不反对我发布 XML,我可以将 ~275 行直接粘贴到我的问题中吗? (我认为不支持附件。)是的,我没想到会找到一个名为“1”的目标,但我的意思是我没有找到任何对可能解析为“1”的目标的引用。跨度>
      【解决方案5】:

      原来这个错误信息是命令行中“-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=”消除了构建失败。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 2019-05-26
        • 1970-01-01
        相关资源
        最近更新 更多