【问题标题】:ant target doesn't exist but gets executedant 目标不存在但被执行
【发布时间】:2012-08-03 11:52:15
【问题描述】:

我从未见过这种奇怪的 -

我进入了维护项目,在那里我得到了一个 build.xml,但我从未安装过 ant。 ant 被捆绑到项目中,所以我使用 -

ant deploy_project.

但是当我查看 build.xml 时,我找不到任何名为“deploy_project”的目标。

谁能帮助我在 build.xml 中不存在此目标的情况下如何执行“deploy_project”目标?

我怀疑由于我没有自己安装 ant 并且与项目捆绑在一起,因此任何 ant 配置都可能已被覆盖......但是如何找到它是我卡住的地方,任何人都可以帮助我?

(我确定 build.xml 中不存在目标)。

非常感谢。

【问题讨论】:

    标签: ant


    【解决方案1】:

    运行以下命令:

    $ ant -p
    

    这通常会打印出build.xml 中的所有目标。或者至少是有描述的。

    同时在您的build.xml 中查找<import file="..."> 语句。这些允许您导入其他 Ant 构建文件,这些文件可能包含您的 build.xml 中没有的目标。我怀疑,如果您在 build.xml 中搜索字符串 deploy_project,但找不到该名称的目标,则您的 build.xml 中某处有导入语句,因此请搜索 <import .

    【讨论】:

    • 谢谢!我已经能够在导入的 build.xml 文件之一中找到它。非常感谢!
    【解决方案2】:

    如果您确定目标不存在,并且您没有使用 -f 选项指定构建文件,那么我只能想到 1 个解释 -

    您的 ANT_HOME 在其他地方,那里会有另一个 build.xml。

    (检查的最快方法是找到它 - SET for Windows echo $PATH for Unix),找到 ANT_HOME 的值,在同一目录中,一个 build.xml 将与您的 *INVISIBLE em>* 目标


    如果您搜索了 C: 驱动器但仍然找不到任何 build.xml,那么您拥有的捆绑 ANT 可能是定制的或 ANT 包装器。意思是有一个名为 ant.bat 的 .bat 文件,它接受 deploy_project 作为参数,然后使用变量替换将其映射到另一个任务。因此,请查找批处理文件 ant.bat 或任何标题为 ant 的文件。

    【讨论】:

    • 我在 CMD 上使用 set 命令检查了 ant_home,但它没有列出 Ant_Home 变量。我还在我的 C: 驱动器上执行了“搜索名为 build.xml 的文件”,以查看是否有任何 build.xml 具有此目标,但找不到任何东西..!!
    • 检查变量 PATH.. 它可能包含类似 Path = "C:\..\..\..ant1.x.y\
    • 如果你已经搜索了 C: 盘,但仍然找不到任何 build.xml,请查看更新后的答案
    • If you are SURE that the target is not present, and you are not specifying the build file with -f option, then only 1 explanation I can think of - .. nope~我们需要确保他的build.xml中没有<import>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多