Die kleine Ameise mit dem “S” auf dem Rücken

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 . Jeder Target hat dabei einen Namen @name. Für eventuelle Abhängigkeiten gibt es noch die Abhängigkeiten @depends, die vorher erst abgearbeitet werden. Mit @description kann man noch eine Beschreibung zu dem Target vornehmen.
In jedem muss man dann mindestens einen Task angeben. Diese Tasks sind dann die Kommandos, die etwas ausführen.
Wenn man bestimmte Werte immer wieder verwenden muss oder diese recht schnell an das jeweilige System anpassen möchte, kann man Properties setzen. Jedes Property hat einen Namen @name und kann entweder einen Wert @value oder einen Pfad @location haben. Der Unterschied ist nur, dass ein als @location übergebener Wert keinen abschließenden Slash hat.

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 die nötigen Dateien übergeben bekommt.

<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.

  • Share/Bookmark

Das könnte Sie auch interessieren:

This entry was posted in Business, Entwicklung and tagged , , . Bookmark the permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">