ant build.xml目标来检查调试代码



调试时,我经常在PHP中使用Zend_Debug和die()之类的东西来查找问题。偶尔我会忘记在提交代码之前把这些东西拿出来。所以我在想。。。

如何编写ant build.xml目标,该目标检查应用程序中的所有文件中是否存在特定字符串,如果找到这些字符串,则会失败?

基本上,我正在执行一个反向grep命令,该命令在找到字符串时失败。

有什么想法吗?

此外,考虑到我的build.xml文件是这样的(为了缩短它,我删除了大部分目标),我该如何使它工作
我不知道ant是如何工作的,所以我想要一个"临时"解决方案或好的说明。

<?xml version="1.0" encoding="UTF-8"?>
<project name="API" default="build" basedir=".">
    <property name="source"  value="application"/>
    <target name="build" depends="prepare,lint,phpcpd,phpdox,phpunit,phpcb"/>
    <target name="clean" description="Cleanup build artifacts">
        <delete dir="${basedir}/build/api"/>
    </target>
    <target name="lint">
        <apply executable="php" failonerror="true">
            <arg value="-l" />
            <fileset dir="${basedir}/${source}">
                <include name="**/*.php" />
            </fileset>
            <fileset dir="${basedir}/tests">
                <include name="**/*.php" />
            </fileset>
        </apply>
    </target>
</project>

lint目标内(在apply元素之后)添加

<fileset id="die-files" dir="${basedir}/${source}">
    <include name="**/*.php" />
    <contains text="die()"/>
</fileset>
<fail message="The following files contain "die()": ${ant.refid:die-files}">
    <condition>
        <resourcecount when="greater" count="0" refid="die-files"/>
    </condition>
</fail>

如果您可以使用ant contrib than:

<for param="file">
  <path>
    <fileset dir="/path/to/application/"/>
  </path>
  <sequential>
    <if>
      <contains string="@{file}" substring="bad elements"/>
      <then>
        <fail>warning! substring is present in directory</fail>
      </then>
    </if>
  </sequential>
</for>

相关内容

  • 没有找到相关文章

最新更新