Podczas debugowania dość często używam w PHP takich rzeczy jak Zend_Debug i die() w celu zlokalizowania problemu. Czasami zapominam je usunąć przed wprowadzeniem kodu. Więc zastanawiałem się...
Jak napisać cel ant build.xml, który sprawdza wszystkie pliki w mojej aplikacji pod kątem określonych ciągów i kończy się niepowodzeniem, jeśli zostały znalezione?
Zasadniczo jestem za poleceniem reverse grep
, które kończy się niepowodzeniem, gdy znajduje ciąg.
Jakieś pomysły?
Ponadto, biorąc pod uwagę, że mój plik build.xml wygląda tak (usunąłem większość moich celów, aby był krótki), jak sprawić, by działał?
Nie wiem, jak działa mrówka, więc szukam rozwiązania typu „wrzucanie” lub dobrych instrukcji.
<?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>
2 odpowiedzi
W obrębie celu lint
(po elemencie apply
) dodaj
<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>
Jeśli możesz użyć ant-contrib niż:
<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>
Podobne pytania
Nowe pytania
ant
Apache Ant (dawniej Jakarta Ant) to deklaratywne narzędzie do budowania oparte na języku XML, stworzone pierwotnie dla projektów Java. Zapewnia bogaty zestaw standardowych zadań do wykonywania najbardziej typowych operacji kompilacji, takich jak kompilowanie źródła Java, budowanie archiwów i uruchamianie testów. Funkcjonalność Ant można rozszerzyć za pomocą niestandardowych zadań i makr.