ANT - 在目标内有条件地执行宏

时间:2015-08-05 12:35:19

标签: ant macros

我正在尝试实施我认为应该是非常基本的条件但我没有取得任何成功。我有一个目标(deploy.DEVELOPMENT),在这个目标中我调用两个宏来备份/恢复我们用于配置的ini文件。大纲如下:

<target name="deploy.DEVELOPMENT" description="Deploy to DEVELOPMENT">  
<echo>START: Deploy to ${mode.dev}</echo>
<echo>SOURCE: ${dir.source}</echo>
<macroBackupSourceConfigFile />
<macroUpdateConfigFile
keyDatasource="${setting.devdsn}"
keyServer="${server.devdevweb11}"
keyAppName="${setting.devappname}"
keyApplicationID="${setting.applicationid}"/>
<macroCopyFiles dirSource="${dir.source}" dirTarget="${dir.devdevweb11}"/>                                      
<macroRestoreSourceConfigFile />
<echo>END: Deploy to ${mode.dev}</echo>           
</target>

在某些项目中,不需要ini文件,因此我不需要运行两个宏中的任何一个,只需运行macroCopyFiles。我想在我的ant文件的顶部设置一个属性来指定是否应该执行这些宏。

非常感谢任何协助。

最诚挚的问候,

加里

1 个答案:

答案 0 :(得分:0)

我认为这就是你需要的......它会进行检查。如果文件abc.txt可用,则将存在abc.present属性。其他目标将调用check-abc并检查属性abc.present是否存在。如果是这样,它将执行,否则它将不执行。

<target name="check-abc">
    <available file="abc.txt" property="abc.present"/>
</target>

<target name="do-if-abc" depends="check-abc" if="abc.present">
    ...
</target>