寻求一些帮助,试图找到一种方法让 Maven antrun 插件对我的 php 模块中的所有文件进行交互,对它们全部执行 php -l (lint 检查)。
如果我使用设置为 true 的 failonerror 属性,它会在遇到一个坏文件时立即失败。如果我将 result 属性与文件集(当前实现)一起使用,那么它会解析所有文件,但返回代码来自 php lint 的第一次执行,因此只有在第一个文件坏的情况下才会失败。
<apply executable="php" failonerror="false" resultproperty="myresult">
<arg value="-l" />
<fileset dir="${basedir}">
<include name="**/*.php" />
</fileset>
</apply>
我尝试使用另一种调用 php -l 的方法,使用 find (来自http://kamisama.me/2012/07/02/faster-php-lint/),但它似乎仍然在第一次退出损坏的文件。
<target name="lint" description="Perform syntax check of sourcecode files">
<exec executable="bash" failonerror="true">
<arg value="-c" />
<arg value="find -L ${basedir}/src -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l" />
</exec>
</target>
可以使用 antrun 语法或检查所有文件的方法的帮助,但如果一个或多个文件未能通过 lint 检查,则在最后退出。
我也考虑过 githooks,但我不负责那个系统。
任何提示表示赞赏!