IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Intégration ANT / SUBVERSION avec SVNAnt

Automatisez la création de 'tags' et de 'branches' dans un repository SVN. Automatisez également le 'checkout' ainsi que l'export des sources (sans les .svn). Découvrez l'outil SVNAnt et utilisez la tache ANT 'svn' pour récupérez les sources, lancer les opérations de compilation du source, des tests, et génération de rapports.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

0. Introduction

Ce tutoriel est un extrait de séances pratiques de la formation SPRING dispensée par Objis.

Objis

1. Prérequis

Le seul prérequis à ce tutoriel est d'avoir Ant installé sur votre machine.

3. Objectifs

Intégrer ANT et SUBVERSION

4. Programme

Partie 1 : Installer SVNAnt : 15 min

5. Partie 1 : Installer SVNAnt

Téléchargez SVNAnt à partir du site officiel.

Contenu du répertoire lib :

Contenu du répértoire lib
  • Copiez les jars antlib.jar et svnClientAdapter.jar dans ANT_HOME/lib ou bien (comme ici) dans un répertoire spécifique : svn-ant-lib
  • Dans le build ANT, ajoutez la ligne :
 
Sélectionnez
—

A partir de la documentation de SVNAnt, expliquez la configuration suivante.

 
Sélectionnez
<property file="build.properties"></property>

<!-- Proprietes SVN and SVN-ANT Taches -->
<property name="svn.repository.url" value="${svn.repository.url}"/>
<property name="svn.project.base.path" value="${svn.project.base.path}" />
<property name="svn.base.url" value="${svn.repository.url}"/>
<property name="svnant.lib.dir" location="${svn.ant.lib}"/>
<property name="svnant.javahl" value="false" />
<property name="svnant.svnkit" value="true" />
<!-- Proprietes SVN and SVN-ANT Taches -->

6. Création d'un TAG

Image non disponible

Création de Tag 'à la main' :

 
Sélectionnez
svn copy -m "Release 1" svn ://localhost/repository1/projet-tax-calculator/trunk svn ://localhost/repository1/projet-tax-calculator/tags/release-1.0

Automatisation

 
Sélectionnez
<!-- ****************************************************************** -->
<!-- svntag: cree un TAG en utilisant proprietes                             -->
<!--         fichier  build.properties ainsi que taches SVNANT task          -->
<!-- ******************************************************************* -->
<target name="svntag" description="tags projet individuel en utilisant la tache svnant">    
  <property name="svn.tag.message" value="Creation du tag ${tag.name}  pour projet ${project.name} a partir de trunk "/>
  <property name="src.url"  value="${svn.base.url}/${project.name}/trunk/"/>
  <property name="dest.url" value="${svn.base.url}/${project.name}/tags/${tag.name}"/>

  <echo message="${svn.tag.message}"/>
  <echo message="${src.url}"/>
  <echo message="${dest.url}"/>

 <svn javahl="${svnant.javahl}" svnkit="${svnant.svnkit}" username="${svn.username}" password="${svn.password}">
 <copy srcUrl="${src.url}" destUrl="${dest.url}" message="${svn.tag.message}"/>    
 </svn>
 </target>

7. Création de BRANCHES

Création de Branche 'à la main' :

 
Sélectionnez
svn copy -m "Release 1" svn ://localhost/repository1/projet-tax-calculator/trunk svn ://localhost/repository1/projet-tax-calculator/tags/release-1.1-developpement

Automatisation

 
Sélectionnez
<!-- ****************************************************************** -->
<!-- svnbranch: cree une Branche via proprietes                       -->
<!--         fichier  build.properties ainsi que taches SVNANT task          -->
<!-- ****************************************************************** -->
<target name="svnbranch" description="cree une nouvelle branche pour projet individuel a partir de la tache svnant">    

<property name="svn.branch.message" value="Creation nouvelle branche pour
le projet ${project.name} avec nom de nouvelle branche ${new.branch.name} a partir de 
trunk"/>
  <property name="src.url"  value="${svn.base.url}/${project.name}/trunk/"/>
  <property name="dest.url" value="${svn.base.url}/${project.name}/branches/${new.branch.name}"/>

  <echo message="${svn.branch.message}"/>
  <echo message="${src.url}"/>
  <echo message="${dest.url}"/>

 <svn javahl="${svnant.javahl}" svnkit="${svnant.svnkit}"   
         username="${svn.username}" password="${svn.password}">
 <copy srcUrl="${src.url}" destUrl="${dest.url}" message="${svn.branch.message}"/>                       
 </svn>
 </target>

Remarque : pour travailler sur la nouvelle branche :

 
Sélectionnez
svn switch svn ://localhost/repository1/projet-tax-calculator/tags/release-1.1-developpement

8. Export

Automatisation de l'export

 
Sélectionnez
<!-- ****************************************************************** -->
<!-- svnexport: cree un export via export proprietes                       -->
<!--         fichier  build.properties ainsi que taches SVNANT task          -->
<!-- ****************************************************************** -->
<target name="svnexport" description="exporte projet individuel en utilisant tache svnant">    
  <property name="svn.tag.message" value="Export du projet project ${project.name} avec tag ${tag.name}"/>
  <property name="src.url"  value="${svn.base.url}/${project.name}/tags/${tag.name}"/>
  <property name="destPath" value="${dest.path}"/>
  <echo message="${svn.tag.message}"/>
  <svn javahl="${svnant.javahl}" svnkit="${svnant.svnkit}" username="${svn.username}" password="${svn.password}">
 <export srcUrl="${src.url}" destPath="${destPath}/${project.name}"/>  
  </svn>
 </target>

9. Conclusion

Dans ce tutoriel, vous avec utilisé SVNAnt pour automatiser des taches courantes d'administration : création de tag et branches

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2009 Objis. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.