Manchmal ist es nützlich, das Projekt nach dem erfolgreichen Build in eine Zip-Datei zu packen. Dieses mache ich ganz gerne, wenn ich kein SVN / Git verwende.
Warum Maven & Ant?
Das spätere Build Script soll noch mehr als nur eine Zip-Datei erstellen und das kann mit Apache Ant einfach viel einfacher gestaltet werden als mit Maven.
Wie man ein Apache Ant Build Script erstellt, habe ich im gleichnamigen Tutorial erklärt.
Ant Zip Task
In einem Ant Build Script werden die Aufgaben in Task definiert, diese Tasks enthalten wiederum kleine Aufgaben usw. für die Erstellung einer Zip-Datei nutze ich den Ant Zip Task welcher standardmäßig zur Verfügung steht.
<buildnumber file="${basedir}/build.number"></buildnumber> <!-- Version des Projektes --> <property name="project.version.major" value="0"></property> <property name="project.version.minor" value="0"></property> <property name="project.version.buildnumber" value="1"></property> <property name="project.version.revision" value="${build.number}"></property> <property name="zip.filename" value="${ant.project.name}-${project.version.major}.${project.version.minor}.${project.version.buildnumber}.${project.version.revision}"></property> <target name="createZip"> <zip destfile="${basedir}/target/${zip.filename}.zip" basedir="${basedir}" excludes="target/**/*" update="false"></zip> </target>
Attribut | Beschreibung | Wert |
---|---|---|
destfile | Ziel Datei | String |
basedir | Quellverzeichniss | String |
excludes | Auszuschließende Dateien bzw. Verzeichnisse | String |
update* | Bei einer bestehenden Datei soll diese aktualisiert werden | Boolean |
*Da die ZipDatei mit einer Versionsnummer versehen wird nutzt das Attribut “update” in diesem Beispiel nichts.
Damit können wir nun unser Projekt zu einem ZIP zusammenfügen.
Maven AntRun
Um das vorher erzeuge Ant Build Script aus Maven zu starten, müssen wir das Maven AntRun Plugin in der Datei pom.xml folgendermaßen konfigurieren:
<plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <phase>generate-sources</phase> <configuration> <tasks> <ant antfile="${basedir}/build.xml" target="all"/> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin>
Wobei ggf. der Pfad zum Ant Build Script angepasst werden muss.
Abschluss
Nun wird bei jedem ausführen des Maven Befehls “mvn install” das Ant Build Script ausgeführt.