toms blog - FTP-Upload-Task mit Ant und Eclipse / Zend Studio

FTP-Upload-Task mit Ant und Eclipse / Zend Studio Mittwoch, 26. November 08

Oft ist es praktisch, Webprojekte, die man lokal entwickelt, mit der Live-Umgebung (dem FTP-Server) zu synchronisieren. Eine Möglichkeit ist es z.B. hierfür einen SVN-Server aufzusetzen. Das macht vor allem bei Projekten Sinn, an dem mehrere Personen gleichzeitig hantieren. Voraussetzung dafür ist allerdings ein Server mit Shell-Zugriff und installiertem SVN-Client.

Wenn man alleine an einem Projekt arbeitet, reicht deshalb auch ein Script, dass die geänderten Daten einfach auf den FTP schaufelt und veraltete Dateien einfach überschreibt. Ich möchte euch zeigen, wie man mit Hilfe des Ant FTP-Tasks diesen nützlichen Prozess in Eclipse bzw. im Zend Studio for Eclipse (für PHP) zum Laufen bringt.

Als erstes benötigt man Ant. Ant kommt normalerweise mit der Standard-Installation von Eclipse mit und braucht nicht extra installiert werden. Für das Zend Studio wird Ant zwar mitgeliefert, ist aber nicht installiert. Hierzu ist ein kleiner Trick nötig: Man gehe auf File/New/Other… worauf sich der Projekt-Wizard öffnet. Durch das Häckchen bei “Show all Wizards” wird der Ordner “Java” sichtbar. Man wähle “Java Projekt from Existing Ant File” und klicke “Next >“. Daraufhin erscheint ein Popup mit der Meldung, dass Ant erst aktiviert werden müsse. Diese muss natürlich mit OK bestätigt werden. Ist dies passiert, kann das Anlegen des Projekts getrost abgebrochen werden – Ant ist jetzt installiert.

Als nächstes benötigen wir die Bibliotheken (ORO und commons) für den Ant Task. Diese findet man unter:
http://jakarta.apache.org/oro/ und
http://jakarta.apache.org/commons/net/index.html

Ich persönlich habe die gerade aktuellen Versionen commons-net-2.0.jar und jakarta-oro-2.0.8.jar. Diese sollten irgendwo Zentral im Java-Verzeichnis oder an einem anderen, gut aufgehobenen Platz auf der Festplatte gespeichert werden.

Nun muss dem Ant-Plugin nur noch mitgeteilt werden, wo die benötigenten Bibliotheken liegen. Das geschieht unter Preferences… im Baum Ant/Runtime. Im Reiter “Classpath” gibt es den Eintrag “Global Entries“. Diesen wählen wir aus und klicken auf “Add External JARs…” und geben den Pfad zu den eben gespeicherten JARs an. Selbstverständlich speichern nicht vergessen!

Die Ant-Leiste kann man sich nun über Window/Show View/Other…/Ant/Ant in den Arbeitsbereich ziehen.

Was jetzt noch fehlt, ist eine korrekte build.xml. Diese muss im Projektverzeichnis angelegt werden und entsprechend der FTP-Daten befüllt werden. Dazu sei die Referenz von Apache erwähnt, die alle möglichen Attribute ausführlich erklärt. Folgende Beispielkonfiguration reicht in den meisten Fällen aus:

<?xml version="1.0" encoding="UTF-8"?>

<!-- See http://ant.apache.org/manual/OptionalTasks/ftp.html for all task options -->

<project name="Beispiel FTP-Task" default="ftp">
	<description>FTP-Upload</description>

	<target name="ftp" description="upload stuff to ftp">
		<echo>Uploading files to ftp</echo>
		<ftp server = "myserver.com"
				 userid               = "FTPUser"
				 password             = "XXX"
				 remotedir            = "my_projekt/app"
				 passive              = "no"
				 binary               = "no"
				 depends              = "yes"
				 verbose              = "yes"
				 timestampGranularity = "NONE" >

			<fileset dir="app" />
		</ftp>
	</target>
</project>

Die Konfiguration ist eigentlich selbsterklärend. Die Angabe unter fileset gibt an, dass das Verzeichnis “app” im Projektordner in das Verzeichnis “my_projekt/app” auf dem FTP kopiert werden soll – und zwar nur die Dateien die geändert wurden (depends = “yes”).

Die build.xml kann nun per drag&drop in die Ant-View gezogen werden. Daraufhin erscheint der Name des Tasks in der Leiste.

Sollte alles geklappt haben, reicht ein Doppelklick auf den Default-Task und die fleißige Ameise beginnt mit ihrer Arbeit. Mit der Eclipse-Konsole sollten sich eventulle Fehler leicht finden lassen.

2 Antworten zu “FTP-Upload-Task mit Ant und Eclipse / Zend Studio”

  1. FTP-Upload-Task mit Ant und Eclipse / Zend Studio / CODEISPOETRY (Dienstag, 2.12.08 11:22 Uhr)

    [...] via [...]

  2. my first Flash Facebook app / CODEISPOETRY (Montag, 1.02.10 17:30 Uhr)

    [...] couldn’t find a way to test the app locally. So I highly recommend a FTP ant task for a good [...]

Hinterlasse eine Antwort