【发布时间】:2017-07-12 13:36:12
【问题描述】:
我在构建文件中定义了以下默认目标:
<target name="main" depends="generate.doc" unless="generated.doc.present"/>
该属性在 doc 文件已存在时设置。在那种情况下,我什么都不想做。但是,它不起作用,因为依赖目标总是在评估条件之前执行。
无论输出是否已经存在,我仍然需要能够直接调用依赖目标并执行它。因此,这样的事情是行不通的:
<target name="main" depends="generate.doc"/>
<target name="generate.doc" unless="generated.doc.present">...</target>
有没有在主目标中不使用antcall的解决方案?
【问题讨论】:
-
generated.doc.present属性是如何设置的?它是设置在 Ant 内部还是外部?如果设置在 Ant 内部,是设置在<target>内部还是外部? -
我对问题的描述有点困惑。你是说当你调用
main时你只希望文档不存在时生成它,但是当你直接调用generate.doc时你希望它无论如何都生成? -
@Chad Nouis,该属性在同一构建文件中和
<target>之外设置为<available file="${generatedRoot}" type="dir" property="generated.doc.present"/>。 -
@CAustin,这正是我想要的。我们经常在我们的项目中调用
ant并且执行一些其他任务,例如编译源代码。包含用于生成文档的构建文件,如果文档不存在,只需调用ant也应该生成文档。但是,我们还需要能够在我们的项目上调用ant generate.doc来重新生成它。
标签: ant