Ja, das hat sie wirklich…das wohl tollste Entwicklungsunterstützungssystem seit langem ist für mich seit heute ANT. Diese “Batchverarbeitung” in Java ist wirklich ein außerordentlich nützliches Werkzeug für die alltägliche Arbeit eines Entwicklers.
Ich werde im folgenden mal meine Wünsche und meine Lösungen dazu vorstellen. Vielleicht hilft es ja jemandem, der auch an der Stelle stand, als er das erste Mal mit der neuen PHPIDE in Kontakt kam.
0. Kurze Vorbetrachtung
Für jede Aktion gibt es sogenannte Targets
In jedem
Wenn man bestimmte Werte immer wieder verwenden muss oder diese recht schnell an das jeweilige System anpassen möchte, kann man Properties
Nun zu meinen Problemen und Lösungen:
1. Einfaches Kopieren als Quasi-Backup-Lösung
Dazu gibt es den Kopier-Task <copy />, welcher mit Hilfe eines FileSets
<target name="backupFiles" description="copies all files"> <copy todir="${backup.dir}"> <fileset refid="fullproject"></fileset> </copy> </target>
Das referenzierte FileSet ist auf der selben Ebene wie die Properties und die Targets abgelegt:
<fileset dir="${src.dir}" id="fullproject"> <exclude name=".project*"/> <exclude name="build.xml"/> <exclude name="${zip.file}"/> <exclude name="resources/objects/*.xsd"/> <exclude name="buildscripts/**"/> <exclude name="demos/**"/> <exclude name="COPYRIGHT"/> </fileset>
2. Anlegen des Backup-Verzeichnisses
Zum Anlegen eines Verzeichnisses gibt es < mkdir />.
<target name="makeTargetDir" description="makes backup directory"> <mkdir dir="${backup.dir}"/> </target>
3. Löschen eines alten Backups
Für das Löschen benötigt man < delete />.
<target name="cleanUp" description="cleans up build dir"> <delete failonerror="false" verbose="false"> <fileset dir="${backup.dir}"/> </delete> </target>
5. Packen einer Release Datei
Der Einfachheit halber erkläre ich hier nur den < zip /> Task.
<target name="makeZip" description="makes a zip"> <zip destfile="${deploy.dir}${file.separator}${zip.file}"> <fileset refid="fullproject"></fileset> </zip> </target>
Das ganze habe ich auch als TarGZ und BZip2 Archiv veröffentlicht. Dazu verweise ich mal lieber auf die komplette build.xml Datei, auf die ich am Ende verweisen werde.
6. Erzeugen der kompletten API-Dokumentation
Zum Erzeugen der Dokumentation benutze ich phpDocumentor. Dieser bietet eine Konsolenanwendung, um komfortabel die Generierung anstoßen zu können. Damit man auf Kommandozeilen arbeiten kann braucht man den < exec /> Task.
<target name="apidoc" description="generate api documentation"> <exec dir="${php.documentor.dir}" executable="cmd.exe"> <arg line="/c ${php.documentor.command}"/> </exec> </target>
So viel erstmal zu meinen Einstiegserfahrungen. Weitere Möglichkeiten finden sich in der build.xml Datei zu meinem PHP Projekt.