LES TONTONSFLEXEURS. Engagez vous qu ils disaient http://groups.adobe.com/group/504

Documents pareils
Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

SonarQube : une autre vision de votre logiciel

Installation et prise en main

JOnAS Day 5.1. Outils de développements

bbc Launch Pad Juillet 2011 Version 10.0

TD/TP 1 Introduction au SDK d Android

Environnement de Développement Outils Open-Source d'integration Continue. Exemple de Mise en Oeuvre

Hudson Serveur d Intégration Continue. Adrien Lecharpentier IR3 Ingénieurs2000, Université de Marne la Vallée

Code Produit Nom Produit Dernière mise à jour. AM003 Alias Mobile On Demand Licence 1 mois 27/04/2015

L Intégration Continue & Agilité

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

TP1. Outils Java Eléments de correction

Votre premier projet Android

Point sur les solutions de développement d apps pour les périphériques mobiles

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

ECLIPSE ET PDT (Php development tools)

Bonnes pratiques de développement JavaScript

Joomla! Création et administration d'un site web - Version numérique

Module d anonymisation

GECKO Software. Introduction à MOBIDICK. Modular But Integrated Application Framework

CATALOGUE DES OFFRES O2i INGÉNIERIE POUR LES PLATEFORMES ÉDITORIALES

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Introduction à Eclipse

Bureautique Initiation Excel-Powerpoint

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

HAYLEM Technologies Inc.

7 Développement d une application de MapReduce

26 Centre de Sécurité et de

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

BIRT (Business Intelligence and Reporting Tools)

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Environnements de développement (intégrés)

wxwidgets dans un environnement Microsoft Windows

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

Programmation Mobile Android Master CCI

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Projet de développement

APIs de table pour SQL Server

Module BD et sites WEB

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

les techniques d'extraction, les formulaires et intégration dans un site WEB

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

Retour d'expérience avec : OCS Inventory & GLP

WINDOWS SHAREPOINT SERVICES 2007

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

Tropimed Guide d'installation

Installation et compilation de gnurbs sous Windows

Guide d installation JMap 5.0

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

La base de données XML exist. A. Belaïd

PHP 5.4 Développez un site web dynamique et interactif

Manuel logiciel client Java

Web conferences : la portlet BigBlueButton

Sessions en ligne - QuestionPoint

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Une solution opensource d'affichage dynamique - XIBO

Projet de Java Enterprise Edition

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Plateforme de capture et d analyse de sites Web AspirWeb

Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles

AngularJS pour une application d'entreprise

Connaissance des secteurs e-commerce, bourse et assurance.

Clément DAVID, Pierrick KNECHT, Pierre LALLEMENT, Ronan PRESLE

Application Web et J2EE

Serveur de travail collaboratif Michaël Hoste -

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Manuel d utilisation du web mail Zimbra 7.1

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

Guide de migration BiBOARD V10 -> v11

Guide utilisation SFR Sync. SFR Business Team - Présentation

Table des matières Introduction Démarrage Les composants graphiques... 26

Logiciel photothèque professionnel GUIDE D UTILISATION - 1 -

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Etude de cas : PGE JEE V2

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

FORMATION Offre de Formation - Packaging. Les bonnes pratiques du packaging avec Installshield et AdminStudio. Contact et inscriptions

Eclipse atelier Java

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Portabilité sur système Android d un système de borne d information

Glossaire LiveCycle ES2.5

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Sun Java System Access Manager Notes de version pour Microsoft Windows

THEME : Mise en place d une plateforme d enseignement à distance

Utilisation de Jakarta Tomcat

as Architecture des Systèmes d Information

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Transcription:

LES TONTONSFLEXEURS

LES TONTONSFLEXEURS Engagez vous qu ils disaient http://groups.adobe.com/group/504

LES TONTONSFLEXEURS Et choisissez le menu de notre prochain rendez-vous Workflow Designer Flash <-> Développeur Flex Remoting et Messaging, avec BlazeDS et LCDS Découverte de Catalyst Flex 4 : Data Centric Developpement Test Driven Developpement et FlexUnit IHM et Ergonomie, les fondamentaux API 3D et Moteur 3D Développement pour Mobiles

LES NEWS

LES NEWS Adobe abandonne Linux!

LES NEWS Alternatives : FDT http://fdt.powerflasher.com/ IntelliJ IDEA http://www.jetbrains.com/idea

LES NEWS PrimeSense : Kinect pour flash http://www.primesense.com/?p=515

LES NEWS Marilena : version AS3 d OpenCV Facial Detection, Web Cam Object Detection, Head Tracking, 3D Library Integration

LES NEWS http://ffdmag.com

MAX 2010

MAX 2010 Ce que Adobe prépare - Flex 4.5 «Hero» - Flash Builder «Burrito» - Flash Catalyst «Panini» - Flash player 11 - Rome

MAX 2010

LES TONTONSFLEXEURS Maven

Historique Les prémices La fondation apache cherche un moyen d uniformiser les «systèmes de build» Ils réalisent les constats suivants : Systèmes spécifiques à chaque projet Réutilisabilité relative Complexité Coûts de mise en place, maintenance et montée en compétences (dupliqué pour chaque projet) Besoins similaires : compilation, documentation, génération d un site

Historique Maven 1 Maven 1 est très vite adopté : Basé sur Ant, outil alors largement utilisé Apparaît tout d abord comme un complément de Ant Il est bien plus, en répondant aux problématiques de : maintenabilité réutilisabilité uniformisation

Il présente déjà les grands principes qui en feront son succès : Une approche déclarative basée sur un langage projet commun Les grands principes La manipulation abstraite de concepts auxquels nous sommes tous familiers : compilation test packaging déploiement reporting Concepts intégrés via la notion de cycle de vie

Les grands principes Les grandes fonctionnalités : La définition d un cycle de vie La gestion des dépendances La gestion de version La documentation Une arborescence de projet standard

Les grands principes Maven 1 comporte encore quelques inconvénients La taille du project.xml qui inclue l ensemble des dépendances nécessaires au projet (dépendances + plugins) l ensemble des versions déployées Langage de script encore nécessaire Les plugins maven développés en scripts Jelly Les exécutions annexes, gérées en partie via des plugins, en partie au sein de l installation

Les grands principes, Maven 2 Maven 2 vient compenser ces manques : Approche 100% déclarative via le fichier pom.xml La gestion transitive des dépendances Les plugins full Java tous gérés via le repository

Les grands principes, pom.xml Le pom.xml rassemble : La liste des membre de l équipe L url du gestionnaire de sources La version Le type d artifact Les rapports à générer Les principales dépendances nécessaires suivant les différentes phases : compilation, packaging, test La déclaration des plugins et de leur configuration

pom : Il s agit du fichier pom.xml contenant l intégralité de la configuration maven pour le projet artifact : Définitions Il s agit du résultat final du build projet Il sera déployé sur le repository sous la forme : <artifactid>-<version>.<extension> groupid : Il s agit du répertoire dans lequel sera déployé l artifact sur le repository Il permet de catégorisés les artifacts Il s apparente à la notion de package en Java

Définitions repository : Il contient les dépendances et plugins nécessaires au build Il peut contenir également les artifacts déployés Selon le cas, il peut être local ou distant Selon la configuration il peut contenir des artifacts en version release et/ou snapshot snapshot : Mot réservé maven, qui vient en complément de la version Un projet en version snapshot signifie qu il est en cours de développement Un snapshot est déployé avec un indicatif de date en plus du numéro de version Lorsqu un projet contient une dépendance snapshot, maven vérifiera la disponibilité d une version à chaque build

Définitions plugin : Il s agit de la base même du fonctionnement de maven Un plugin rassemble un ou plusieurs goals Il peut être associé à une phase du cycle de vie ou exécuté en ligne de commande : $ mvn plugin-id:goal L exécution d un plugin peut être configurée : Via le pom En ajoutant des arguments à la ligne de commande goal : Tâche unitaire spécifique

Structure des répertoires Arborescence proposée par défaut Minimum de configuration Uniformisation des projets Diminution des coûts Possibilité de définir une arborescence différente

Structure des répertoires src src/main/java src/main/resources src/main/filters src/main/webapp src/test/java src/test/resources src/site target target/classes target/test-classes target/surefire-report target/site Répertoire contenant toutes les entrées nécessaires à la compilation, les tests, la documentation Sources java uniquement Fichiers à inclure au classpath (exemple : hbm.xml, properties, xml ) Les fichiers properties servant de filtre. Dans le cadre d une application web, ce répertoire contient l ensemble des ressources web : jsp, html, css, images, répertoire WEB-INF Sources java des tests unitaires. Pattern des classes exécutées : *Test, Test*, *TestCase Pattern des classes ignorées pour l exécution : Abstract*Test, Abstract*TestCase Fichiers inclus au classpath de test. Fichiers venant en complément pour la génération du site. Répertoire temporaire contenant l ensemble des ressources générées (fichiers compilés, filtrés, rapports générés, artifact ) Répertoire de compilation principal. Répertoire de compilation des tests unitaires. Répertoire contenant les rapports de tests unitaires Site généré

Cycle de vie : default mvn compile process-resources compile resources:resources compiler:compile process-test-resources compiler:testresources mvn test test-compile test compiler:testcompile surefire:test mvn install mvn deploy package install deploy jar:jar install:install deploy:deploy

La gestion des dépendances L inlassable sacer d os des développeurs Où les trouver? Comment les stocker? Comment les partager? Comment les nommer? Comment gérer les versions? Comment gérer leur implication : classpath, classpath de test, packagée ou non

La gestion des dépendances Maven répond à la totalité de ces problématiques Stockage, Partage REPOSITORY Norme de nommage Référencement, Classification Gestion des versions Niveau d implication POM Cohérence des versions

La gestion des dépendances Une dépendance est identifiée par Un répertoire de classification (groupid) Un nom (artifactid) Un numéro de version Une extension (type) <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>2.5.6</version> </dependency> </dependencies>

Le repository Central au fonctionnement de maven : Téléchargement et référencement des dépendances Déploiement des artifacts générés Déploiement des sites projets générés Téléchargement et stockage des plugins exécutés

Les repositories Dépendances et plugins (internes et externes) Repository entreprise Dépendances et plugins internes Repository externe Poste développeur Repository local Dépendances et plugins externes

Repository : structure Structure maven 2

Les modules Un projet maven peut être découpé en différents modules : Souplesse Modularité Réutilisabilité Les modules sont listés dans un pom parent Ils référencent également le pom parent

Les modules <project> <groupid>org.ttfx.cave</groupid> <artifactid>cave-parent</artifactid> <version>1.0-snapshot</version> <packaging>pom</packaging> <modules> <module>cave-business</module> <module>cave-webapp</module> </modules> </project> <project> <parent> <groupid>org.ttfx.cave</groupid> <artifactid>cave-parent</artifactid> <version>1.0-snapshot</version> </parent> <project> <parent> <groupid>org.ttfx.cave</groupid> <artifactid>cave-parent</artifactid> <version>1.0-snapshot</version> </parent> <artifactid>cave-business</artifactid> <packaging>jar</packaging> </project> <artifactid>cave-webapp</artifactid> <packaging>war</packaging> </project>

L héritage Un pom hérite de la quasi-totalité de la configuration de son parent Il est possible de canaliser cet héritage dependencies / dependencymanagement plugins / pluginmanagement Le plugin help permet de contrôler les résultat de l application de l héritage sur le pom courant

Les plugins : configuration Chaque plugin possède un ou plusieurs goals ses propres paramètre de configuration Il existe 2 types de configuration bien distinctes Le customisation de l exécution attachée au cycle de vie La définition d une exécution en ligne de commande L ajout d une exécution au sein du cycle de vie projet <plugin> <executions> <execution> <id>dosomething</id> <configuration> </configuration> <phase>package</phase> <goals> <goal>goalid</goal> </goals> </execution> </executions> </plugin>

Les plugins help assembly antrun release scm changes archetype

Le site Suivi informel et qualitatif du projet Quelques rapports : Javadoc Surefire Dependencies Changelog Cobertura Checkstyle / PMD Findbugs Taglist

LES TONTONSFLEXEURS Flex et Maven Mise en place d un projet Flex avec Maven

Objectifs Créer un projet Flex avec Maven Intégration des tests unitaires Intégration continue avec Hudson Faire une «release» de l application

Pré-requis Une connexion internet Java version 1.5 Maven version 2

Création du projet (via archetype) Se placer dans le dossier où on veut créer le projet et lancer la ligne de commande : mvn archetype:generate -DarchetypeRepository=http:// repository.sonatype.com/content/groups/flexgroup -DarchetypeGroupId=org.sonatype.flexmojos -DarchetypeArtifactId=flexmojos-archetypes-application -DarchetypeVersion=3.7.1

Aperçu du projet Contenu du POM généré Structure du projet

Création du projet (via FlashBuilder) Evidemment possible depuis Flash Builder en faisant attention à : src/main/flex (dossier source par défaut) Créer et ajouter les dossiers suivants au Build Path: src/main/resources src/test/flex Déplacer l application principale dans src/main/flex et redéfinir l application principale Ajouter le POM qui va bien au projet Définir la version du SDK Flex à celle indiquée dans le POM

Compilation du projet Simplement lancer la commande : mvn clean install Téléchargement du SDK Flex Compilation de l application Compilation des Tests Exécution des tests Installation dans le repository

Support des tests unitaires Installer le Flash Player Debug Windows: http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_sa_debug.exe OS X: http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_sa_debug.app.zip Afficher le contenu du paquet et renommer «Contents/MacOS/Flash Player Debugger» en «Contents/MacOS/Flash Player» Linux: http://download.macromedia.com/pub/flashplayer/updaters/10/flash_player_10_linux_dev.tar.gz Décompresser l'exécutable dans «/usr/bin» Indiquer l emplacement du FlashPlayer En ajoutant à chaque exécution maven : -DflashPlayer.command=${filepath} Via la modification du PATH : Sous Mac OS X, ajouter au fichier.profile : export PATH=$PATH:/Users/mika/mavenFlex/Flash\ Player\ Debugger.app/Contents/ MacOS/

Changement de la version du SDK Flex Edition des «dependencies» du POM Changement du numéro de version dans la dependency : com.adobe.flex.framework.flex-framework Liste des versions disponibles avec FlexMojos : https://repository.sonatype.org/content/groups/flexgroup/com/adobe/flex/framework/flexframework/ Modification de la version du compilateur utilisée

Import dans Flash Builder Configurer le projet pour Flash/Flex Builder : mvn flexmojos:flexbuilder pour Flex Builder mvn flexmojos:flashbuilder pour Flash Builder Importer le projet existant dans Flash/Flex Builder Menu Fichier > Importer > Projet existant Configurer le projet pour utiliser le wrapper HTML Propriétés du projet > Flex compiler > Generate HTMK wrapper file Attention : Il est préférable de disposer de la même version du SDK dans FlashBuilder que celle définie dans le POM!!! Liste des versions disponibles avec FlexMojos : https://repository.sonatype.org/content/groups/flexgroup/com/adobe/flex/framework/flex-framework

Et Flex 4?? Changer le numéro de version tout simplement! Cibler le player version 10: Ciblage du player 10 Ajout du SWC player 10

Création du POM parent Création d un POM parent pour notre application Définition une fois pour toute des versions utilisées Configuration par défaut des plugins Déclaration du ou des repositories à utiliser Création de projet facilité Exemples de POM parent offerts par les Tontons Flexeurs ;-) pour Flex 3.5 : pour Flex 4 :

Déclaration du projet parent Ajout du projet parent Suppression des versions/ configurations Attention le POM parent doit être redéployé dans le repository si changements! («mvn clean install» le redéploiera)

Attention! Ne pas commiter FlexUnitApplication.mxml pour les projets de lib swc maven ne le compilera pas -> Uniquement tests en local Ne pas commiter de TestCase sans méthode de test (le test ne passera pas dans maven) Ne pas commiter le dossier «target» En fait commiter uniquement «src» et «pom.xml» Ne pas mixer les versions de SDK - Ajouter seulement les dépendances dont vous avez besoin

Intégration continue du Projet Création du projet dans Hudson

Release du projet Indiquer les infos SCM (Source Code Management) mvn release:prepare préparation des poms tag SCM du projet compilation / vérification du projet

Release du projet Indiquer les infos de distribution mvn release:perform checkout du tag compilation et déploiement dans le repository modification des poms

Conclusion Maven un système de build : simple et efficace uniformisée et modulable Flex 4.5 pas encore «compatible»...

Références Site de référence http://maven.apache.org Maven Reference Guide http://www.sonatype.com/books/mvnref-book/reference/publicbook.html FlexMojos http://flexmojos.sonatype.org/ Hudson http://hudson-ci.org/ Nexus Reference Guide http://www.sonatype.com/books/nexus-book/reference/ Better Builds with Maven : Vincent Massol & Jason van Zyl Introduction à Maven 2 : http://dcabasson.developpez.com/articles/java/maven/introductionmaven2/ Working with Maven : http://cvs.peopleware.be/training/maven/maven2/ FAQ Maven 2 : http://java.developpez.com/faq/maven/ Maven, The Definitive Guide, en français: http://www.maven-definitive-guide.fr/ Maven Properties Guide : http://docs.codehaus.org/display/mavenuser/ MavenPropertiesGuide

LES TONTONSFLEXEURS Workflow Designer Flash <-> Développeur Flex Remoting et Messaging, avec BlazeDS et LCDS Découverte de Catalyst Flex 4 : Data Centric Developpement Test Driven Developpement et FlexUnit IHM et Ergonomie, les fondamentaux API 3D et Moteur 3D Développement pour Mobiles