我正试图实现我认为应该是相当基本的条件,但没有任何成功。我有一个目标(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文件的顶部设置一个属性来指定是否应该执行这些宏。
如有任何帮助,不胜感激。
最诚挚的问候,加里
我认为这是你需要的…它将执行检查。如果abc.txt文件存在,则abc.txt为abc.txt文件。现有财产将继续存在。其他目标将调用check-abc并检查属性是否为abc。现在存在。如果是,执行,否则不执行。
<target name="check-abc">
<available file="abc.txt" property="abc.present"/>
</target>
<target name="do-if-abc" depends="check-abc" if="abc.present">
...
</target>