Ant + Subversion + SvnAnt

SvnAnt ist eine Java-Bibliothek die Ant-Tasks fuer die Vesionsverwaltungs-Software Subversion anbietet. Die Bibliothek kapselt die Moeglichkeiten des Kommandozeilenprogramms “svn” in Ant-Tasks, womit die Kommunikation zwischen Ant und Subversion sehr komfortabel und elegant moeglich ist.
SvnAnt benutzt intern die javahl Bibliothek, ein Java Interface fuer die Subversion API, welche direkt zum Subversion Projekt gehoert. Wenn die Bib. die korrespondierende native Bib. (libsvnant.dll auf Windows) finden kann, dann geschieht die Kommunikation ueber javahl. Wenn die native Implementierung auf dem Betriebssystem nicht gefunden werden kann, gibt es ein FallBack zum Kommandozeilen Interface “svn”. Wenn kein Subversion-Client installiert ist und dementsprechend kein “svn” im PATH eingetragen ist, kann die Verbindung zu Subversion nicht hergestellt werden und es treten Fehler auf.
Es muss also entweder eine native javahl Bibliothek installiert sein oder ein Subversion-Client. Die javahl Bibs werden uebrigens auch im Subclipse Projekt benutzt. Eclipse Benutzer die Subclipse installiert haben, sollten sich hierum keine Sorgen machen. Alle nicht Eclipse Benutzer koennen die Bibliothek von der offiziellen Subversion Homepage runterladen.
SvnAnt kann hier heruntergeladen werden: http://subclipse.tigris.org/svnant.html

In dem entpackten Archiv befindet sich eine vollstaendige Dokumentation im HTML-Format, in dem alle Ant-Tasks mit ihren Attributen beschrieben sind. Die *.jar Dateien aus dem Archiv muessen entweder in die <ANT_HOME>/lib kopiert werden oder die entsprechende build.xml verweist auf die Dateien.
Bei der zweiten Moeglichkeit muss folgender Path in der build.xml eingetragen sein.

<path id="project.classpath"  >
 <fileset dir="../svnant-1.0.0-rc1/lib"  >
 <include name="*.jar"  />
 </fileset>
</path>

Der Pfad zum “svnant-1.0.0-rc1/lib” Verzeichnis muss natuerlich an das jeweilige System angepasst werden.
Der Task wird wie folgt definiert:

 <taskdef name="svn"
 classname="org.tigris.subversion.svnant.SvnTask"
 classpathref="project.classpath"   />

Wenn die *.jar Dateien von SvnAnt in der <ANT_HOME>/lib liegen dann kann das Attribut “classpathref” weggelassen werden. Das auschecken von Sourcecode aus dem Subversion-Server sieht dann so aus:

 <target name="checkout"  >
 <svn username="${svnUser}"   password="${svnPassword}"   javahl="true"  >
 <checkout url="${svnURL}"   destPath="${projectHome}"   />
 </svn>
</target>
 

Mit dem Attribut “javahl” kann hier explizit angegeben werden ob javahl oder das Kommandozeileninterface “svn” zum Gebrauch kommen soll. Standardmaessig hat das Attribut “javahl” den Wert “true”.
Weitere Tasks wie commit, add, delete, copy, createRepository und noch mehr sind in der Dokumentation zu SvnAnt beschrieben.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s