How to Integrate Subversion, Version Control Software, With Apache ANT Comment intégrer la subversion, logiciel de contrôle de version, avec Apache ANT
Subversion is a popular version control software and replacement for CVS, the grand-daddy of all version control software which is still widely used in open source community. Subversion est une version du logiciel de contrôle et le remplacement de CVS, le grand-papa de tous les logiciels de contrôle de version qui est encore largement utilisé dans la communauté open source.
Recently I had the necessity to invoke Subversion commands like checkout from Ant, a popular java based build software which replaces make tool. Récemment, j'ai eu la nécessité d'invoquer la subversion des commandes comme la caisse de Ant, un populaire Java basé sur un logiciel qui remplace outil faire.
There are two ant tasks to accomplish this, the better one is SvnAnt from Subclipse project. Il ya deux fourmi tâches à accomplir cela, le mieux est un SvnAnt projet de Subclipse. However configuring it to work was non-trivial as proper usage documentation was missing. Cependant la configuration de travail a été non négligeable que le bon usage de documentation n'a pas été retrouvée. So I decided simplify the process to make your life easier. J'ai donc décidé de simplifier le processus pour vous rendre la vie plus facile.
However the extensive commands it supports are well Toutefois, la vaste commandes qu'il soutient sont bien documented documentés .
Note: If prompted for user name / password use guest / guest. Note: Si vous y êtes invité pour nom d'utilisateur / mot de passe utiliser guest / guest.
Why SvnAnt? SvnAnt Pourquoi?
Subversion is a full-fledged version control software obviously supporting commands like checkout, add or commit. Subversion est un à part entière de contrôle de version du logiciel de toute évidence soutenir des commandes comme la caisse, d'ajouter ou de commettre. The ant task from O’Reily didn’t even support checkout! La tâche de fourmi O'Reily n'a même pas soutenir la caisse! It supported a very limited set from the available commands. Elle a appuyé un ensemble très limité de commandes disponibles.
So I went for Je suis donc allé pour svnant task which had much better support. tâche qui a beaucoup mieux. Also this way you don’t have to mess with Aussi cette façon, vous n'avez pas à bidouiller avec exec’ing the Subversion CLI exec'ing la CLI Subversion commands directly from your ant script. commandes directement à partir de votre script fourmi. It is wrapped up for ease of use. Il est enveloppé de la facilité d'utilisation. It can also use JNI interface for speed. Il peut aussi utiliser JNI interface pour la vitesse.
To provide access to the Subversion API, svnant uses either the Pour fournir l'accès à l'API de Subversion, svnant utilise soit le javahl - Subversion Java bindings or Subversion’s command line programs (which must be installed and in your PATH). -- Java Subversion Subversion reliures ou la ligne de commande de programmes (qui doit être installé et dans votre PATH).
javahl uses JNI which must be setup appropriately. javahl utilise JNI qui doit être configuré de façon appropriée. I preferred using the Subversion’s command line programs as subversion was already installed in my system. J'ai préféré l'utilisation de Subversion la ligne de commande de programmes de subversion est déjà installé dans mon système.
Steps: Marche à suivre:
1. I am assuming you already have Je suis en supposant que vous avez déjà ant installed. installé. If not do it first. Si pas le premier. Ensure %ANT_HOME% ($ANT_HOME for *nix) is defined and %ANT_HOME%\bin is appended to your %PATH%. Assurer% ANT_HOME% ($ ANT_HOME pour * nix) est définie et% ANT_HOME% \ bin est joint à votre% PATH%.
2. If you do not have subversion installed then first Si vous n'avez pas la subversion installé puis prendre la première à download it télécharger and install. et à installer.
2.1 Ensure that svn is in your path by invoking svn from a command windows (cmd for windows, bash etc. for *nix). Veiller à ce que 2,1 svn est dans votre chemin d'accès en invoquant de svn une fenêtre de commande (cmd pour les fenêtres, etc bash pour * nix).
3. Download Télécharger svnant and extract the files to any directory. et extraire les fichiers d'un répertoire.
4. Go to your project directory. Aller au répertoire de votre projet. If it doesn’t have a lib (or equivalent) directory to store required jar files then create one and copy all the files (*.jar ) from svnant’s lib directory: Si il ne possède pas une lib (ou équivalent) un répertoire pour stocker les fichiers jar nécessaires puis en créer un et copier tous les fichiers (*. jar) de svnant du répertoire lib:
commons-lang-2.0.jar
jakarta-regexp-1.3.jar
svnClientAdapter.jar
svnant.jar
svnjavahl.jar
5. To use svn task you have to add a taskdef to your build file. Pour utiliser svn tâche que vous devez ajouter un taskdef à construire votre dossier. Use either of the following: Utilisez l'une des façons suivantes:
Option 1: Option 1:
This requires the lib directory to be included with either “ant -lib lib” or by adding an extra parameter: Pour cela, il faut le répertoire lib à inclure dans les deux «ant lib-lib" ou en ajoutant un paramètre supplémentaire:
where project.classpath is previously defined as: project.classpath où est définie comme précédemment:
Option 2 is simpler: Option 2 est plus simple:
The project.classpath is previously defined as shown before. Le project.classpath est déjà défini comme indiqué auparavant.
For example you can use this simple build.xml file to fetch latest code from WordPress repository: Par exemple, vous pouvez utiliser ce simple fichier build.xml pour aller chercher plus tard WordPress code de dépôt:
Run this script by simply typing ant. Exécuter ce script en tapant simplement fourmi.
BTW: I think Subversion as version control software and ant as build and deployment software are two very strong products which should be part of any enterprise open source software stack. BTW: Je pense que la subversion comme le contrôle des versions de logiciels et de fourmi que la construction et le déploiement de logiciels sont deux produits très forte qui devrait faire partie de toute entreprise de logiciels à source ouverte pile.
Filed under Classé sous Headline News Headline News , How To Comment , Java Software Logiciel de Java , Open Source Software Open Source Software , Tech Note Note technique | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | cet article |
Email this Article Envoyer cet article
You may also like to read Vous mai également à lire |




June 9th, 2006 at 1:09 pm Juin 9th, 2006 at 1:09 pm
I am not able to set the interative option in svn, ie I have to use username and password option in a non interactive way. Je ne suis pas en mesure de fixer la interative option dans svn, c'est-à-dire je utiliser le nom d'utilisateur et mot de passe dans une option non interactif.
Can anyone tell the format to enable authentication in an interactive way. Quelqu'un peut-il dire le format pour permettre l'authentification de manière interactive.
Thanks in advance. Merci à l'avance.
Ankush
May 3rd, 2007 at 10:18 am 3 mai 2007 à 10:18 am
Ankush, if it is not too late Ankush, si elle n'est pas trop tard
There is an task for this purpuse in Core taskset. Il est une tâche pour ce but, en taskset de base. See example: Voir l'exemple:
Flitt
May 20th, 2008 at 2:48 pm Mai 20, 2008 à 2:48 pm
I find the SVN Ant task very primitive compared to its CVS cousin. Je trouve la tâche Ant SVN très primitif par rapport à son cousin CVS. Maybe I’m missing something but I couldn’t figure out how to replace this cvs task with its svn alternative: Peut-être que je suis manque quelque chose mais je ne pouvais pas comprendre comment remplacer cvs cette tâche avec ses autres svn:
<cvs dest=”${dest}”<cvs dest = "$ dest ()"command=” ${command} “command = "$ (command)"tag=”${tag}”tag = "$ (tag)"package=” ${packages} “package = "$ () paquets"output=”${output}”>output = "$ (sortie)">May 20th, 2008 at 2:59 pm Mai 20, 2008 à 2:59 pm
I find the SVN Ant task very primitive compared to its CVS cousin. Je trouve la tâche Ant SVN très primitif par rapport à son cousin CVS. Maybe I’m missing something but I couldn’t figure out how to replace the cvs task with its svn alternative. Peut-être que je suis manque quelque chose mais je ne pouvais pas trouver un moyen de remplacer le cvs sa tâche avec svn alternative. I’m referring to the ‘command’ and ‘package’ attributes which could be specified as build properties and would make the build script pretty generic and parameterized. Je fais référence à la «commande» et «paquet» attributs qui pourrait être précisée que la construction des propriétés et rendrait le script assez générique et paramétrable.