Automatisch Zip-Archiv mit Eclipse für Joomla Erweiterungen
9. November 2011
Seit einiger Zeit programmiere ich für Joomla eigene spezielle Module, Plugins und Components. Als Entwicklungsumgebung verwende ich Eclipse, aktuell Eclipse INDIGO, und was ständig Zeit raubt, ist der Arbeitsschritt “ZIP-Archiv erstellen”, damit die Erweiterung entweder auf einem Lifeserver installieren werden kann, oder für eine Erstinstallation der Erweiterung genutzt werden kann.
Da fiel mir spontan eine Funktion von Eclipse ein, die auch in der Javawelt verwendet wird. Eclipse bietet die Möglichkeit sogenannte “Builders” anzulegen. Das sind kleine Programme die bei einem Ereignis (z.B.: Abspeichern) in dem Projekt gestartet werden. Die Bekannteste Builderfunktion ist die beim Speichern einer Datei, die Script-Validatoren, damit man Fehler angezeigt bekommt.
Ich verwende diese Builder bei der Entwicklung von Joomla-Erweiterungen um automatisch ein ZIP-Archiv zu erstellen, man kann aber auch viele andere Workflows ausarbeiten.
Vorraussetzung: 7-Zip muss installiert sein und ein aktuelles Eclipse.
Schritt 1:
Man geht in die Projekt Eigenschaften “Project >> Properties” dann dort auf “Builders” und legt ein neuen Builder als “External Program” an.

Schritt 2:
Gebt dem Builder einen Namen, wählt die 7z.exe auf eurem Rechner als Location aus, bestimmt das Arbeitsverzeichnis (hier macht es Sinn den Projektordner zu wählen)

Als nächstes müssen noch Argumente an 7Zip übergeben werden:
a -r -x!.* -x!*.zip ${project_name}.zip *
Mit den beiden Filtern -x!.* und -x!*.zip schließen wir alle Eclipseprojektdateien aus und auch die ZIP selbst, wenn das Projekt bereits gepackt wurde.
Als letztes kann man die Option “During auto builds” unter “Build Options” aktivieren und man erhält zu jedem Speichervorgang eine neue ZIP-Datei generiert.
Eclipse bietet eine Menge an vordefinierten Variablen wie die ${project_name}. Somit kann man diesen Builder ohne Anpassungen für weitere Projekte aktivieren.
Das Ergebnis von 7Zip wird in der Console von Eclipse ausgegeben:
7-Zip 9.13 beta Copyright (c) 1999-2010 Igor Pavlov 2010-04-15
Scanning
Updating archive com_helloworld.zip
Compressing index.html
Everything is Ok