Ant 1.6.5环境下如何让echo任务条件输出内容到指定日志文件
解决Ant 1.6.5下仅当属性定义时才输出日志到文件的方案
借助已引入的ant-contrib组件提供的<if>条件标签,判断debugLog属性是否有效,仅当属性存在且非空时才执行日志写入操作,避免生成无效的${debugLog}命名文件。
首先确保构建文件中已正确配置ant-contrib的任务定义(已配置可直接跳过该步):
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
将原有单行echo任务替换为如下条件执行代码即可:
<if> <and> <!-- 判断debugLog属性已被定义 --> <isset property="debugLog" /> <!-- 额外判断属性值不为空,避免空值时生成无效文件 --> <not> <equals arg1="${debugLog}" arg2="" /> </not> </and> <then> <echo fileName="${debugLog}" message="${message}"/> </then> </if>
逻辑说明
- 当
debugLog未定义或者值为空时,不会进入<then>分支,echo任务完全不会执行,不会产生任何无效文件 - 原有
echo的写入逻辑不需要修改,完全兼容原有业务需求 - 完全适配Ant 1.6.5版本的特性限制,不需要升级Ant版本
内容的提问来源于stack exchange,提问作者Mikhail T.
相关产品推荐
相关产品推荐

