Mit der Zeit haben sich einige Joomla-Erweiterungen angesammelt, die ich entwickelt habe und nun auch entsprechend gepflegt werden müssen.
Da meine Zeit begrenzt ist, müssen einige Schritte automatisiert werden.
Zum Bauen der Erweiterungen hatte ich schon in der Vergangenheit ein Shell-Skript geschrieben, welches folgende Funktionalität bietet:
- In der XML-Datei wird <version> mit dem gewünschten Wert und <creattionDate> mit dem aktuellen Datum belegt.
- Der php-Code wird auf syntaktische Richtigkeit geprüft.
- Die Zip-Datei selbts wird erstellt. Welche Dateien hineinkommen sollen, ist in einer Datei hinterlegt.
Das Bauen selbst erfolgt mit Hilfe von Jenkins.
Nach einem erfolgreichem Bauen soll die erstellt Erweiterungen auch gleich in einem Test-Joomla installiert werden. So sollen Fehler beim Paketieren frühzeitig auffallen. Und in der Zukunft könnten auch gleich noch automatische Test anlaufen.
Bei der Suche im Web habe ich erst einmal nichts gefunden, was eine automatische Installation von Erweiterungen in Joomla ermöglicht.
Einen Lichtblick gab es dann doch noch. Es handelt sich dabei um eine Ant-Erweiterung, die eine automatische Installation von Erweiterungen für ältere Joomla-Versionen ermöglicht.
Leider lief das ganze nicht mir Joomla 1.7/2.5. So begann ich, das ganze entsprechend anzupassen.
Nun kann man mit einem Aufruf von
ant -lib ~/ant-joomla/lib deploy
liefert nun folgenden Outut
Buildfile: /home/harry/project/joomla-1.7/plugin_mosimage-admin/build.xml deploy: [joomla-install-extension] ==> Login [joomla-install-extension] ==> Update token [joomla-install-extension] ==> Update token: successful [joomla-install-extension] ==> Login: successful [joomla-install-extension] ==> Prepare Installion Component [joomla-install-extension] ==> Prepare Installion Component was successful [joomla-install-extension] ==> Update token [joomla-install-extension] ==> Update token: successful [joomla-install-extension] ==> Installion [joomla-install-extension] ==> Installion was successful BUILD SUCCESSFUL Total time: 5 seconds
Die Erweiterung ist nun installiert. Den Erfolg kann man im Extention-Manager von Joomla überprüfen:
Was braucht man alles?
- java 6 oder höher
- ant (getestet mit 1.8.2)
- ant-Erweiterung ant-joomla
- ein installiertes Joomla 1.7/2.5
Einspielen der Ant-Erweiterung ant-joomla
Ich habe die Ant-Erweiterung unter $HOME/ant-joomla installiert. Natürlich kann man jeder anderen Ort wählen. Dann man natürlich auch im folgenden den Pfad entsprechend angeben.
1. Die Ant-Erweiterung nach $HOME/ant-joomla/lib auspacken
2. Nun legt man eine Build-File build.xml an:
<project>    <taskdef name="joomla-install-extension" classname="com.joomboss.InstallExtensionTask" />    <taskdef name="joomla-remove-extension" classname="com.joomboss.RemoveExtensionTask" />    <property file="build.properties"/>    <property name="url" value="URL_JOMMLA_TEST"/>    <property name="login" value="ADMIN_USER"/>    <property name="password" value="ADMIN_PASSWORD"/>    <property name="ftplogin" value=""/>    <property name="ftppassword" value=""/>    <property name="debug" value="false"/>    <property name="source" value="NAME_OF_EXTENTION_FILE"/>    <property name="name" value="EN_NAME_OF_EXTENTION"/>    <property name="type" value=""/>    <target name="deploy">       <joomla-install-extension          source="${source}"          url="${url}"          adminlogin="${login}"          adminpassword="${password}"          ftplogin="${ftplogin}"          ftppassword="${ftppassword}"          debug="${debug}"/>    </target>    <target name="undeploy">       <joomla-remove-extension          name="${name}"          type="${type}"          url="${url}"          adminLogin="${login}"          adminPassword="${password}"          ftpLogin="${ftplogin}"          ftpPassword="${ftppassword}"          debug="${debug}"/>    </target> </project> |
Dabei müssen natürlich die Platzhalter
- URL_JOMMLA_TEST
- ADMIN_USER
- ADMIN_PASSWORD
- NAME_OF_EXTENTION_FILE
- EN_NAME_OF_EXTENTION
ersetzt werden.
Die Änderungen muss man aber nicht direkt in build.xml durchführen. Stattdessen kann man die gewünschten Werte auch in der Datei build.properties ablegen. Die Werte in build.properties überschreiben die Werte in build.xml
Beispiel:
url=http://localhost/joomla-test login=admin password=mainPassword source=deploy/h2n_linkdirectory2-u-${VERSION}.zip name=Link Directotry 2.0
Download: ant-joomla-full-1-0-0