【发布时间】:2012-01-08 01:18:18
【问题描述】:
我正在为大型 PHP 应用程序创建构建脚本。我正在使用由 Jenkins 运行的 Ant 脚本。
我想在构建脚本中包含 PHP_CodeSniffer 和 PHPMD(PHP Mess Detector)等工具,所以我有这样的代码:
<target name="php-codesniffer">
<exec executable="phpcs" dir="${basedir}" output="${basedir}/build/logs/checkstyle.xml">
<arg line="--report=checkstyle --standard=PEAR ${basedir}/"/>
</exec>
</target>
<target name="phpmd">
<exec executable="phpmd" dir="${basedir}" output="${basedir}/build/logs/phpmd.xml">
<arg line="${basedir} xml codesize,unusedcode,naming"/>
</exec>
</target>
但是,这两个工具都需要很长时间才能运行,即使在我们代码库的一小部分上也是如此,因此我正在尝试找到可以使用它们的方法,但不会降低性能。
我目前的想法是仅在当前构建中已修改的文件上运行它们,但我对 Ant 的了解不够,无法让它执行此操作。
所以问题是如何修改上述 Ant 目标,以使 <exec> 调用仅针对当前构建中已修改的文件运行? (或者如果 Ant 不知道当前构建,则在最后 X 分钟内)。
感谢您的帮助。
【问题讨论】:
标签: php ant continuous-integration hudson jenkins