【问题标题】:How do I get the target as a property in Ant?如何在 Ant 中获取目标作为属性?
【发布时间】:2012-07-25 09:57:02
【问题描述】:

可能是那些真正可怕的初学者问题之一,手册会告诉你一切,但无论如何,请采取以下这一行:

ant -Dfoo=bar buildme

在我的构建脚本中,包含“buildme”的属性是什么?

【问题讨论】:

标签: ant


【解决方案1】:

调用的目标列表在属性中可用

ant.project.invoked-targets

如果指定了默认目标,那么它将是调用的目标。如果在命令行中指定了一个或多个目标,则这些目标在属性中以逗号分隔。请注意,只有在执行传递到目标后,该属性才会被设置 - 如果您尝试在任何目标之外读取该属性,它将被取消设置。

所以,如果项目有一个默认目标“零”:

$ ant one two
# ant.project.invoked-targets is set to:
one,two

$ ant
# ant.project.invoked-targets is set to (default):
zero

【讨论】:

【解决方案2】:

好像ant.project.invoked-targets 在 ant 1.7.1 中不可用

【讨论】:

    【解决方案3】:

    不确定我是否理解您的问题,但“buildme”是要执行的目标,而不是属性。

    ant [options] [target [target2 [target3] ...]]
    

    您通过创建相应的目标来“选择它”:

    <target name="buildme">
      <!-- tasks that will execute here -->
    </target>
    

    至于 foo 属性,您可以使用 ${foo} “选择”它。

    【讨论】:

    • 嗨 Miguel,基本上,我希望能够在我的构建脚本中检索目标参数。我希望像 ${target} 这样的东西可以工作,但不幸的是没有。
    • 哦... ant 有个老帖子说你做不到 =S markmail.org/message/rjgp2gm54kxnnqih
    • 感谢米格尔的链接,看来这是不可能的。我只是出于一个很小的原因才想要目标参数。没问题。谢谢你的时间。史蒂夫。
    • 作为最后一个资源,您始终可以在每个目标内设置一个属性,其名称为 =D
    猜你喜欢
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多