我的build.xml中有以下目标,准备由Phing处理:
<target name="syntax-test">
<exec command="git diff --cached --name-only --diff-filter=ACMRTUXB" dir="./" escape="false" output="${TMP_DIR}/changed_files" />
<fileset id="CHANGED_FILES" dir="./" includesfile="${TMP_DIR}/changed_files" />
</exec>
<phplint haltonfailure="true" level="warning" deprecatedAsError="true">
<fileset refid="CHANGED_FILES" />
</phplint>
</target>
由于我有许多工具,我想只在所有文件的小部分上运行 - 仅在那些已添加/修改/等的文件上运行,我需要过滤这些工具。
这很好用。
每个工具都非常具体,可用于仅检查特定文件(例如 phplint ,用于检查 .php 或 xmllint 以检查 .XML )。
如何过滤掉这些?
当我尝试应用模式集或包含时,似乎只能使用新规则(忽略 includesfile 参数)。
答案 0 :(得分:1)
由于 FileSet 接受filename作为嵌套代码,您可以使用它:
<fileset id="CHANGED_FILES" dir="./" includesfile="${TMP_DIR}/changed_files">
<filename name="**/*.php" />
</fileset>
答案 1 :(得分:0)
对我来说,工作* .php而不是* / * .php
<fileset id="CHANGED_FILES" dir="./" includesfile="${TMP_DIR}/changed_files">
<filename name="**.php" />
</fileset>