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

NMaven dans la software-factory .NET


précédentsommairesuivant

IV. NMaven: concepts et commandes de base

IV-1. Le cycle de vie du projet

Les cycles de vie des projets sont un concept central de NMaven. La plupart des développeurs sont familiers avec les notions de phases du build comme compile, test et deploy. NAnt a des cibles (targets) avec des noms semblables. Dans NMaven cette notion est standardisée dans un groupe de phases de cycle de vie bien définies (voir Figure 2). Dans NMaven le développeur lance l'action liée à une phase du cycle de vie.

Figure 2 : les phases du cycle de vie NMaven
Figure 2 : les phases du cycle de vie NMaven


Dans la figure 2 les principales phases du cycle de vie de NMaven sont:

- generate-sources: Génère le code source supplémentaire nécessité par l'application, ce qui est généralement accompli par les plugins appropriés.
- compile: Compile le code source du projet.
- test-compile: Compile les tests unitaires du projet.
- test: Exécute les tests unitaires (typiquement avec Nunit).
- integration-test: Réalise et déploie le package si nécessaire dans un environnement dans lequel les tests d'intégration peuvent être effectués.
- install: Installe les artefact (dll, etc.) dans l'entrepôt local. Ils pourront être utilisés comme dépendance des autres projets sur votre machine locale.
- deploy: Réalisé dans un environnement d'intégration ou de production, copie l'artefact final dans un entrepôt distant pour être partagé avec d'autres développeurs ou projets.

Ces phases illustrent le bénéfice des pratiques recommandées et encouragées par NMaven: une fois que le développeur est familiarisé avec les phases principales, il devrait se sentir à l'aise avec les phases du cycle de vie de n'importe quel projet .NET géré par NMaven.

Appeler une phase du cycle de vie appelle automatiquement les phases précédentes du cycle de vie. C'est à dire que si on invoque la phase install, alors les phases suivantes seront appelées dans l'ordre : generate-sources, compile, test-compile, test, integration-test, et enfin install

Comme les phases du cycle de vie sont en nombre limité, faciles à comprendre et bien organisées, se familiariser avec le cycle de vie d'un nouveau projet NMaven est très simple.

IV-2. Les repository

Les repository sont des répertoires où sont stockées les différentes librairies (dll, etc) nécessaires ou produites lors des développements. Pour ce qui est de NMaven, il existe 3 repository qu'on peut utiliser:

- Repository Local : : il s'agit du repository qui se trouve sur le poste du développeur. Toute dépendance sera recherchée automatiquement dans ce repository.
- Repository Central ou distant : Lorsqu'un développeur réalise par exemple une compilation et que les dépendances nécessaires ne sont pas trouvées dans le repository local, NMaven va les chercher dans un repository distant qui aura au préalable été configuré (dans le fichier setting.xml). NMaven met le repository local à jour après avoir téléchargé les dépendances à partir du repository distant. Il faut noter que toute l'opération de téléchargement et d'installation des dépendances en question se fait automatiquement par NMaven.
- Repository Proxy : Dans le contexte d'une entreprise, il est nécessaire d'avoir en interne un repository proxy qui sert à faire les téléchargements une seule fois pour tous les développeurs. En effet en passant par le Repository Proxy, les téléchargements sur les Repository distants (téléchargements qui peuvent être très longs) sont faits seulement par ce dernier. Tout autre téléchargement de dépendance du Repository Local à partir du Repository Proxy est plus rapide car dans un Intranet.

Figure 3 : Mise en oeuvre d'un repository proxy
Figure 3 : Mise en oeuvre d'un repository proxy

IV-3. Organisation du repository

Ici nous devons bien comprendre comment est ce que NMaven range les artefact dans le repository. Chaque artefact a une adresse unique qui de la forme:

 
Sélectionnez
<groupId>.<artefactId>.<version>.[<classifier>]


Exemple:

 
Sélectionnez
<groupId>dotnet.nunit</groupId>
<artifactId>nunit.framework</artifactId>
<version>2.4.5.0</version>

Donne l'adresse : dotnet.nunit.nunit.framework.2.4.5.0


Au niveau du repository, voici ce que cela donne comme résultat (figure 4):

Figure 4 : Organisation du  repository
Figure 4 : Organisation du repository


En somme tout projet qui donne lieu à un artéfact doit avoir un GroupId, un ArtefactId et une version. Le Classifier étant optionnel.

IV-4. Commandes de bases

Dans la gestion de projet on va partir de la création d'un projet jusqu'à son déploiement sur les plateformes de recettes en passant par les Build, les tests ou encore la génération de la documentation.

IV-4-1. Création de la solution

 
Sélectionnez
Mvn archetype:create -DgroupId=com.koossery.tuto 
					-DartifactId=tutointro 
					-Dversion=1.0 
					-DarchetypeGroupId=org.apache.maven.dotnet.csharp 
					-DarchetypeArtifactId=maven-archetype-class-library


Dans l'exemple ci-dessus on créé un projet de type "library" (Ceci est précisé par l'option -DarchetypeArtifactId). Bien entendu on pourrait créer d'autre type de projet:

- Console: dans ce cas archetypeArtifactId = maven-archetype-console-application
- Winexe : dans ce cas archetypeArtifactId = maven-archetype-windows-application
- Controle : dans ce cas archetypeArtifactId = maven-archetype-windows-control

IV-4-2. Compilation de la solution

 
Sélectionnez
mvn compile

IV-4-3. Exécution des tests

 
Sélectionnez
mvn test

IV-4-4. Installation dans votre Repo Local

 
Sélectionnez
mvn install

IV-4-5. Empaquetage

 
Sélectionnez
mvn package

IV-4-6. Déploiement dans le Repo de l'entreprise

 
Sélectionnez
mvn deploy

IV-4-7. Exécution de plusieurs phases

 
Sélectionnez
mvn clean compile test

précédentsommairesuivant