Les Cahiers du Programmeur Java (2)
© Groupe Eyrolles, 2003
20
Le tableau suivant plante le décor commenté dans la suite de ce chapitre. La
justification du choix du serveur d’applications ayant été faite précédemment,
on se concentrera sur les autres facettes des choix par la suite.
Gestionnaire de code source : CVS
BlueWeb utilise depuis de nombreuses années CVS comme outil de gestion des
sources et de contrôle de versions, donc ce nouveau projet va naturellement se
voir offrir son espace réservé sur le serveur CVS.
Les développeurs auront l’esprit libre pour travailler, un outil éprouvé se char-
gera de pallier d’éventuelles « bêtises » rendant toujours possible le retour en
arrière vers une version précédente, tandis que le responsable qualité aura tou-
jours la possibilité de restaurer un environnement « labellisé ». La gratuité de
l’outil nous amène à nous demander pourquoi s’en priver… On peut noter que
tout autre gestionnaire de code source (Microsoft Visual Source Safe, Rational
Clearcase, Continuus, etc.) aurait pu être utilisé. CVS est utilisé avec Ant
notamment au chapitre 7 consacré à l’audit du code.
Production des versions : Ant
Le responsable qualité du projet, Michel, alarmé par ses lectures tient à être le
plus détaché possible des outils de production fournis avec les environnements
de développement et à pouvoir utiliser la puissance d’une machine neutre pour
procéder à des builds nocturnes.
Il décide donc d’utiliser sa machine comme machine de référence, pour lancer
des tâches répétitives durant la nuit. L’installation est minime (un JRE + l’ins-
tallation de Ant et quelques librairies), ne coûte pas cher à la société, ne le per-
turbe pas durant son travail (car Michel dort la nuit…) et doit permettre de
déceler très vite différents problèmes (problèmes de compilation, de tests uni-
taires non conformes, qualité). Bien entendu, cet outil sera utilisé avec le serveur
de fichiers sources (CVS) afin de pouvoir produire à la demande une version
labellisée ou encore opérer de la mise en forme sur tout le contenu du référentiel
de sources.
En fait, au niveau du choix de cet outil, BlueWeb n’a guère d’alternatives car si
tous les environnements de développement du marché ( JBuilder, Forté,
Netbeans, Eclipse, etc.) proposent des fonctions de compilation des sources
(ainsi qu’une interaction avec les référentiels de code source), ils se révèlent
Gestionnaire de code
source Outil de make Serveur d’applications
CVS Ant Ensemble intégré JBoss +
Tomcat
OUTIL
CVS
CVS est lui aussi un produit Open Source, qui pos-
sède des antécédents tels que la question de son
adéquation avec les besoins de BlueWeb ne se
pose pas. C’est la Rolls des outils de gestion de
configuration, car il est gratuit, performant, stable
et relativement simple à installer. De plus, son
adminsitration est réduite au minimum. Utiliser ce
produit c’est choisir en toute sérennité une valeur
sûre. On peut rappeler à titre anecdotique que des
projets tels que le noyau Linux, le serveur Web
Apache et bien d’autres sont gérés et développés
par des centaines de développeurs sur la planète
en utilisant cet outil.
B
http://www.cvshome.org/
ALTERNATIVES
Continuus et ClearCase
Ces deux produits sont sûrement les plus aboutis
en la matière, seulement leur coût (prix de la
licence) et le niveau de formation requis avant uti-
lisation réservent leur utilisation à des entreprises
fortunées. Par ailleurs, il faut signaler qu’il est
nécessaire de dédier environ 1 personne sur 10
développeurs pour la seule administration de ces
produits, ce qui a évidemment un coût non négli-
geable (quand il est possible de l’envisager).
ALLER PLUS LOIN
Pourquoi une machine de production ?
Il est indispensable de passer outre les problèmes
de
classpath
et de faire en sorte que les livra-
bles (classes Java ou fichiers Java) se comportent
correctement dans un environnement « sain ».
C’est pour cela qu’une machine doit être dédiée à
la production et que celle-ci ne peut se faire sur le
poste de l’un des développeurs du projet. La seule
contrainte est d’avoir une JVM installée et un Ant
proprement configuré. Puis lancer l’exécution du
makefile…