In dem vorherigen Blogeintrag habe ich beschrieben wie SvnAnt dazu benutzt werden kann die aktuellen Sourcen aus einem Subversion-Server auszuchecken. Vor dem Bauen der Applikation macht es Sinn die aktuelle Revisionsnummer und einen Timestamp in eine Properties Datei zu schreiben. Diese Informationen koennen in einer Web-Applikation im Footer eingeblendet werden. Wenn ein Fehler auftritt, kann der Kunde, im Idealfall, zu der Fehlerbeschreibung die Revisionsnummer und den Timestamp mitschicken. Diese Informationen sind fuer Entwickler bei der Fehlersuche Gold wert.
Der folgende Task in eine build.xml eingefuegt, holt sich die aktuelle Revisionsnummer vom Subversion-Server und schreibt den Wert in die Property “projectStatus.revision”.
<target name="getSVNRevison" > <svn username="${svnUser}" password="${svnPassword}" > <status path="${projectHome}" revisionProperty="projectStatus.revision" /> </svn> </target>
Die Variable “projectHome” zeigt auf den Pfad der lokalen Arbeitskopie, der im Idealfall mit einem Ant-Task vorher ausgecheckt wurde.
Der Nachfolgende Task schreibt die Revisionsnummer in eine Properties Datei, erzeugt einen Timestamp und schreibt diesen ebenfalls in eine Prop. Datei.
<target name="updateBuildNo" depends="getSVNRevison" > <replaceregexp file="${buildnoFile}" match="revision=(.*)" replace="revision=${projectStatus.revision}" /> <tstamp> <format property="buildTimestamp" pattern="yyyyMMdd-HHmm" locale="de,DE" /> </tstamp> <replaceregexp file="${buildnoFile}" match="timestamp=(.*)" replace="timestamp=${buildTimestamp}" /> <echo>Revision: ${projectStatus.revision}</echo> <echo>Timestamp: ${buildTimestamp}</echo> </target>
Auf die Properties Datei kann in einer JSF-Applikation mit der JSF EL zugegriffen werden als Resource-Bundle.
Great poost thankyou