我正在为大型PHP应用程序创建构建脚本。我正在使用由Jenkins运行的Ant脚本。仅针对修改后的文件运行Ant exec任务
我想包括工具,如PHP_CodeSniffer和PHPMD(PHP混乱探测器)在构建脚本,所以我有这样的代码:
<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分钟内)。
感谢您的任何帮助。
感谢您的回答。重新提出你的第一个建议(复制到临时目录):是的;那就是我想要这样做的原因。我确实看到了前面的问题,但不知道如何将其与我的案例联系起来。你的回答对我有帮助,所以谢谢。重新提出'pathconvert'建议:这听起来更好。但是我发现Ant文档很难遵循。你能给我一个例子,包括我将如何使用''中的生成路径?谢谢。 –
SDC
我用一个例子更新了答案。 – sudocode
非常感谢您的帮助。非常感谢。我已经接受了答案(不能满意,没有足够的分数)。我会再玩一遍,看看事情进展如何。我认为你已经给了我很多的工作。谢谢。 – SDC