La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

15-19 février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE

Présentations similaires


Présentation au sujet: "15-19 février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE"— Transcription de la présentation:

1 15-19 février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE
Formation INTEGRATION CONTINUE 15-19 février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE Participant : Mr Frédéric MULLER 1 1

2 SOMMAIRE A propos d’Objis Introduction intégration continue
Gérer les sources avec Subversion Automatiser et générer rapports avec MAVEN Intégration continue avec Cruise Control Contact - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 2

3 A propos d’objis Spécialiste formation JAVA depuis 2005
70% de travaux pratiques Bilan pédagogique individuel Veille technologique permanente Une approche unique de la formation Expertise, pédagogie, partage - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 3

4 + de 100 tutoriaux Java/j2ee
sur Nos tutoriaux pour vous initier Nos formatrions pour maîtriser Soa, Web Services, Spring, Struts, Hibernate, Ant, Maven, … - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 4

5 INTRODUCTION Qu’est ce que l’intégration continue ?
Pourquoi automatiser ? Par où commencer ? Le cycle vertueux de l’intégration continue - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 5

6 Qu’est ce que l’intégration continue ?
Technique puissante permettant dans le cadre du développement d’un logiciel en équipes de: Garder en phase les équipes de dév Limiter risques de dérive Limiter la complexité A intervalles réguliers, vous allez construire (build) et tester la dernière version de votre logiciel. Parrallèlement, chaque développeur teste et valide (commit) son travail en ajoutant son code dans un lieu de stockage unique. - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 6

7 Pourquoi automatiser ? Gagner du temps
Vous ne faîtes pas de taches répétitives Gagner en confiance Indépendant de votre efficacité du moment Procédures répétables Diminue le besoin de documentation Pour nouveaux entrants projet, utiliser scripts ! …et + en analysant le script. - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 7

8 Par où commencer ? 1) Outil centralisé gestion versions code sources
Lieu unique de partage Retour arrières, snapshots, branches… 2) Tests unitaires automatisés Chaque développeur 3) Scripts Coté serveur pour automatiser (Ex : crontab) 4)Outils de communication Mail, Tél, Rss… - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 8

9 Cycle vertueux intégration continue
- Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING

10 Gérer les sources avec SUBVERSION
Introduction et problème à résoudre Concepts fondamentaux Subversion au jour le jour Branches et Tags Administration Ressources et liens utiles - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 10

11 Introduction Subversion est un système de contrôle de versions (ou gestionnaire de sources). Subversion autorise plusieurs personnes à travailler sur des documents communs (chacun en ayant une copie locale) Subversion permet : synchronisations entre les différentes versions de ces documents retours arrière (undo) vers versions plus anciennes, suivi modifications au cours du temps. - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 11

12 Problème à résoudre - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 12

13 Solution 1 : le lock - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 13

14 Solution 2 : copy-modify-merge (phase1)‏
- Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 14

15 Solution 2 : copy-modify-merge (phase2)‏
- Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 15

16 www.objis.com - INTEGRATION CONTINUEwww.objis.com - Formation SPRING
Architecture SVN Formation SUBVERSION - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 16

17 svn checkout http://monsite.com:4567/repos
URL accès Repository svn checkout svn checkout https://monsite.com:3798/repos svn checkout file:///var/svn/repos svn checkout file:///C:/var/svn/repos svn checkout svn://localhost/repository1 svn checkout ssh+svn://localhost/repository/monprojet - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 17

18 Arborescence - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 18

19 Copie de travail (svn checkout)
Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 19

20 Subversion au jour le jour
Mettre à jour votre copie de travail svn update Réaliser des modifications svn add svn delete svn copy svn move Examiner vos changements svn status svn diff Publier vos changements svn commit Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 20

21 Désactivation cache login/passwd
Par défaut, et pour vous éviter à chaque fois de fournir login/pwd, Subversion met en cache version criptée login/pwd Répertoire %APPDATA%/Subversion/auth c:\Documents And Settings\douglas\Appli_Data Fichier 'conf' store-auth-creds = no - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 21

22 svnadmin create c:\svn_repository\repository1 Import d'un projet :
Repository & projets Création : svnadmin create c:\svn_repository\repository1 Import d'un projet : svn —username douglas —password java import monprojet1 svn://localhost/repository1/monprojet1 -m "Import initial projet 1" Contrôle d’accès au repository conf\svnserve.conf et conf\passwd Organisation repository & projet 1 repository par projet ? - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 22

23 Révisions Dès qu’un fichier est modifié, c’est la révision de tous les fichiers qui s’incrémente (différence forte avec CVS) - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 23

24 Branches et Tags - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 24

25 Branches et Tags Bonne pratique : répertoires trunk, tags, branches pour chaque projet - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 25

26 Branche - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 26

27 Création d’une branche
svn copy -m «  création d’une branche de trunk» - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 27

28 Création d’une branche de développement Changer de branche :
Branches et tags Création d’un tag svn copy monprojet/trunk monprojet/tags/release-1.0-snapshot Création d’une branche de développement svn copy monprojet/trunk monprojet/branches/prepa-dev-1.1 Changer de branche : svn switch monprojet/branches/prepa-dev-1.1 Merge vers branche principale Juste pour voir : svn merge –r 11:16 –dry-run Pour de vrai : svn merge –r 11:16 Revenir à version précédente svn merge –r 16:11 - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 28

29 Administration Subversion
svnadmin Création de repository Opérations de maintenance svnlook Examiner révisions (-r) & transactions (-t) Utilisé typiquement par hooks (pré/post commit) svnlook –revision, svnlook –t svnlook info /var/svn/repos –r 19 auteur, date , nb caractère dans log - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 29

30 Liens utiles SUBVERSION
PDF SVN BOOK : Site Subversion : Client svn Subclipse plugin Eclipse 3.x Client svn windows Tortoise SVN - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 30

31 Gestion de projet avec MAVEN
Définition pour un développeur Définition pour un chef de projet Comparaison avec ANT Démo application multi-modules internationale - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 31

32 Qu’est ce que MAVEN ? Pour développeur/concepteur : outil de build
Pour Chef de projet : outil de gestion de projet Maven est un outil de gestion projet caractérisé par le modèle POM (Project Object Model) Un ensemble de standards Un cycle de vie de projet Un système de gestion des dépendences Une stratégie d'exécution d'objectifs (goals) standard à chaque phase d'un projet Un ensemble de plugins implémentant des services - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 32

33 MAVEN : les conventions
Propriétés communes à un projet Maven Installation plus facile !!! Ex : mvn install Les sources dans $HOME/src/main/java Ex : Employe.java Les tests dans $HOME/src/test Ex : EmployeTest.java Les configs dans $HOME/src/main/resources Ex : database.properties - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 33

34 MAVEN : les conventions
Dans fichier pom.xml, vous décrivez votre projet : Quelle licence ? (<licence>) Quels développeurs ? (<developpers>) Quelles dépendences ? (<dependencies>) Quel outil gestion des sources ? (<scm>) Quel site web ? (<site>) Quels plugins (<plugins>)… Vous définissez de façon unique votre projet, en lui associant des 'coordonées' = ensemble d'identifiants : GroupId : groupe ds lequel le projet se trouve ArtifactId : nom du projet Version : version du projet - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 34

35 MAVEN : les conventions
Coordonnées MAVEN - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 35

36 MAVEN : POM (Project Object Model)
Gestion de dépendences Via 'coordonnées' maven de la dépendence Repositories distants Une dépendance peux se trouver sur repository distant (Ex : .jar sur autre serveur) Réutilisabilité Plugins Maven (Installation, configuration, personalisation) Portabilité Intégration avec IDE : Netbeans, Eclipse, jBuilder... Recherche simplifiée d'artifacts mvnrepository.com ou index Nexus - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 36

37 Comparaison ANT / MAVEN
MAVEN a des conventions. Il sait déja où sont les sources, les tests, les fichiers de config... Classes créées dans target/classes Création de Jars. MAVEN est déclaratif. Tout ce que vous avez à faire est de créer un fichier pom.xml et mettre vos sources dans le répertoire par défaut. Un projet MAVEN possède un cycle vie, que vous invoquez lorsque vous lancez mvn install. Maven execute un ensemble d'instructions associées au cycle de vie du projet - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 37

38 Comparaison ANT / MAVEN
Cibles ANT - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 38

39 MAVEN : plugin, goal, Mojo . Exemple avec le plugin ‘help’
Le plugin help possède 4 goal (taches) Chaque goal implémenté par un Mojo (classe Java) help:describe fournit des infos sur un plugin/goal Mvn help:describe –Dplugin=help Mvn help:describe –Dplugin=help -Ddetail Mvn help:describe –Dplugin=help -Dfull Mvn help:describe –Dplugin=help -DMojo=system –Dfull Les autres (help:active-profiles, help:effective-pom, help:effective-settings) se lancent à partir de la racine d’un projet maven (pom.xml) - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 39

40 Cibles Maven # mvn compile Compilation dans target/classes
# mvn package Création du Jar # mvn install Création du Jar et install. Repository local $USER_HOME/.m2/repository # mvn clean Suppression du répertoire target - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 40

41 Maven : cycle de vie et relation Phases / Plugins
- Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 41

42 Phases Maven - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 42

43 Sections principales d’un pom.xml
Coordonnées Maven Construction : <build> Plugins phase build : <plugins> Génération de rapports : <reporting> Stockage artifacts (livrables) : <repository> Dépendances : <dependencies> Optimisations <dependencyManagement> <pluginManagement> - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 43

44 Dépendances : plugin dependency
mvn dependency:resolve (lister dépendances) mvn dependency:tree (arbre des dépendances) mvn dependency:tree -X (arbre : mode debug) Utile pour résolution de pb Equivalent graphique via plugin m2eclipse - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 44

45 Plugin Eclipse m2eclipse
Création projet Maven Intégration avec serveur gestion sources Combinaison plugins Subclipse / m2eclipse Synchronisation dépendences eclipse / maven Editeur pom.xml Livre maven book Instal. dépendances/plugin (index Nexus) Graphe de dépendances - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 45

46 Plugin Eclipse m2eclipse : exemple graphe dépendances
- Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 46

47 Plugin Eclipse m2eclipse : l’index Nexus en action pour création projet
- Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 47

48 Exemple de projet multi modules
Plusieurs équipes de développements France, Suède, Maroc, Brésil, Italie, USA Chef de projets basé en France Besoin de suivi avancement travaux (Quantité + qualité) Architecture en couche Technologies : Struts, Spring, Hibernate - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 48

49 Architecture Model presentation service persist - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 49

50 Projet Maven multi-modules
Chef de projet principal : vous ! - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 50

51 Projet Maven multi-modules
(Composition) Mvn install sur le parent entraîne aussi mvn install sur modules enfant - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 51

52 Focus couche persistence :
les sources - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 52

53 Focus couche persistence : les fichiers de propriétés
- Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 53

54 Focus couche persistence :
les dépendences - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 54

55 Focus couche persistence :
relation avec parent Le module hérite de certaines propriétés du parent (ex : éépendences) . Cela allège le pom.xml du module (Héritage) - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 55

56 Focus couche persistence :
les rapports - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 56

57 Focus couche persistence :
code DAO - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 57

58 Projet Maven : compilation globale
> mvn clean install - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 58

59 Projet Maven : génération site
> mvn site - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 59

60 Projet Maven : rapport qualité de code
(checkstyle) - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 60

61 Projet Maven : rapport respect normes de développement
- Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 61

62 Rapports Maven : Exemples 1/2
Ajouter dans la section <reporting> du pom.xml - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 62

63 Rapports Maven : Exemples 2/2
Ajouter dans la section <reporting> du pom.xml - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 63

64 Gestionnaire repository Maven
Offre du marché : Archiva : Artifactory : Nexus : par équipe Maven, + moderne, nombreux plugins Critères d’évaluation Cycle de livraison Modèle de déploiement (war) Proxy/Cache de repositories (maven central, codehaus..) Règles d’inclusion / exclusion Conversion à la volée de Maven2/Maven1 integration eclipse (Uniquement index Nexus) Recherche/indexation Matrice de comparaison : - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 64

65 Liens utiles MAVEN Site Maven : http://maven.apache.org
Maven book (pdf) : Anglais : Plugin Eclipse (m2eclipse): Tutoriel Maven Objis : - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 65

66 RAPPEL définition intégration continue ?
Technique puissante permettant dans le cadre du développement d’un logiciel en équipes: Garder en phase les équipes de dév. Limiter risques Limiter la complexité A intervalles réguliers, vous allez construire (build) et tester la dernière version de votre logiciel Parrallèlement, chaque développeur teste et valide (commit) son travail en ajoutant son code dans un lieu de stockage unique. - Formation INTEGRATION CONTINUE - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 66

67 Exemple de produits serveurs intégration continue
CruiseControl : Le plus ancien. Couplage historique avec ANT + intégration repositories marché :cvs,svn,cc,vss… + plugins pour intégration Maven1, Maven2, Nant + nombreuses notifications :mail,ftp,rss,im,blog,x10 + builds parrallèles et distribués - courbe d’apprentissage & prise en main Hudson : + prise en main très rapide (hudson.war) + Administration full web & intuitive + intégration avec Bugzilla - faible intégration repositories (cvs/svn en natif). Ajouter plugins - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 67

68 Critères de comparaison de serveurs d’intégration continue
Matrice de comparaison serveurs Critères comparaison : Combien de serveurs gestion version supportés ? Combien de stratégies de notification ? Combien d’outils de build supportés ? Capacité à réaliser des builds en parralèle ? Capacité à réaliser des builds distribués ? Capacité à réaliser builds manuel ou planifiés ? Intégration avec outil gestion bug ? Intégration IDE ? Facilité d’installation ? Administration ? - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 68

69 Configuration CruiseControl
Configuration manuelle : fichier CC_HOME\config.xml <project> : nom du projet (attribut ‘name’) <publishers> : méthodes notifications résultat build <bootstratppers> : quelle tache avant le build ? <modificationset> : où sont les sources à scruter ? <schedule> : que lancer (script ant, maven…) <log> : pour affichage logs build sur console web Configuration graphique avec CC-Config Instructions : cc-config.sourceforge.net/install.html - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 69

70 Exemple configuration
- INTEGRATION CONTINUEwww.objis.com - Formation SPRING 70

71 Configuration CruiseControl : Notification par mail
1 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 71

72 Configuration CruiseControl : projet Maven 2 sous Subversion
Déclaration Accès sources SUBVERSION Récupération source SUBVERSION pour un projet maven2 3 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 72

73 CruiseControl : détail résultat build
- INTEGRATION CONTINUEwww.objis.com - Formation SPRING 73

74 CC-Config : Configuration & Monitoring graphique
- INTEGRATION CONTINUEwww.objis.com - Formation SPRING 74

75 www.objis.com - Formation SPRINGwww.objis.com - Formation SPRING
Bibliographie SVN Book Editions O’Reilly 407 pages Java Power Tools 932 pages Ant in action Editions Manning 600 pages Maven book 420 pages - Formation SPRINGwww.objis.com - Formation SPRING 120

76 Contact : Douglas Mbiandou
Ingénieur INSA Lyon (2000) 10 ans d'expériences projets SI Architecte / Formateur Java Responsable formations Objis Tél : / - Formation INTEGRATION CONTINUE - Formation SPRINGwww.objis.com - Formation SPRING 76


Télécharger ppt "15-19 février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE"

Présentations similaires


Annonces Google