TP – Intégration continue mardi 7 mai 13 Partie 1 : Introduction Désactivez la construction automatique d’eclipse Initialisez un projet Java et structurez-le comme suit : src main java Java source path test java target classes Default output folder mardi 7 mai 13 Partie 1 : Introduction Créez une classe fr.univ.App disposant d’une méthode public static void main(String[] args) mardi 7 mai 13 Partie 1 : Introduction Créez un fichier build.xml à la racine du projet contenant : <?xml version="1.0" encoding="UTF-8"?> <project name="Projet" default="build"> <target name="build"> <echo>Construction du projet...</echo> </target> </project> mardi 7 mai 13 Partie 1 : Introduction Ouvrez la vue eclipse «Ant» Ajoutez votre fichier build.xml à la vue Lancez la tâche Ant et constatez le résultat mardi 7 mai 13 Partie 1 : Introduction Ajoutez les tâches vous permettant de compiler votre projet comme le ferait eclipse Aidez-vous des tâches suivantes : mkdir, delete, javac... mardi 7 mai 13 Partie 1 : Introduction Séparez votre tâche de compilation en plusieurs tâches interdépendantes Chaque tâche doit correspondre à une étape unitaire pouvant être exécutée seule Aidez-vous de l’attribut «depends» mardi 7 mai 13 Partie 1 : Introduction Dupliquez votre projet et créez à présent un fichier pom.xml à la racine du projet obtenu : <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>fr.univ</groupId> <artifactId>projet</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>Projet</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> </project> mardi 7 mai 13 Partie 1 : Introduction Utilisez Maven pour compiler le projet mvn compile Testez les goals Maven suivants : mvn clean mvn package Ajoutez ce projet à votre référentiel SVN mardi 7 mai 13 Partie 2 : Design patterns Concevez une librairie support d’une application de réseau social permettant : • s’authentifier en tant qu’utilisateur • de créer, supprimer et afficher des articles (texte simple), • d’entrer en relation avec des amis (ajouter / supprimer une relation) Respectez le principe de structuration par couche : Modèle, Accès au données, Service Détaillez uniquement les interfaces et les classes de la couche Modèle mardi 7 mai 13 Partie 2 : Design patterns Créez les éléments à partir de votre conception au sein du projet Maven Les implémentations de vos interfaces doivent être réalisées • «en mode réel» pour le service • «en mode bouchon» pour les DAO (retournant des données de test) mardi 7 mai 13 Partie 2 : Design patterns Créez un test unitaire vérifiant la fonctionnalité d’authentification Créez un package de votre librairie à l’aide de Maven mvn package Vérifiez l’exécution de votre test unitaire avec Maven mardi 7 mai 13 Partie 4 : Intégration continue Ouvrez Jenkins : http://localhost:8080/ Choisissez «Administrer Jenkins» et vérifiez votre configuration. Vous devez obligatoirement disposer de • JDK • Maven • SVN mardi 7 mai 13 Partie 4 : Intégration continue Créez un nouveau Job en mode libre Saisissez les paramètres SVN Ajoutez l’étape de Build demandant l’invocation du goal maven package Ajoutez l’étape «Post build» compilant les résultats de tests unitaires Lancez un build et vérifiez son exécution mardi 7 mai 13 mardi 7 mai 13