Présentation Eclipse. Arnaud NAUWYNCK arnaud.nauwynck@gmail.com



Documents pareils
Projet de développement

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

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

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

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

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

Introduction à Eclipse

TD/TP 1 Introduction au SDK d Android

ECLIPSE ET PDT (Php development tools)

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

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

Votre premier projet Android

Eclipse atelier Java

Quelques mots à propos de Sage

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Bases Java - Eclipse / Netbeans

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

wxwidgets dans un environnement Microsoft Windows

JOnAS Day 5.1. Outils de développements

Vérifier la qualité de vos applications logicielle de manière continue

BIRT (Business Intelligence and Reporting Tools)

TwinCAT 3 C++ Création de modules C++ sous TwinCAT 3 VERSION : 1.0 / PH

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

Guide des Développeurs SITools2 V3

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

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

TP1 : Initiation à Java et Eclipse

Expert technique J2EE

TP1 : Initiation à Java et Eclipse

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

DOSSIER DEVELOPPEUR Projet CAR

Création d une application JEE

Java pour le Web. Cours Java - F. Michel

Utilisation de Jakarta Tomcat

Tutoriel de formation SurveyMonkey

Serveur Subversion Debian GNU/Linux

Architecture client riche Evolution ou révolution? Thomas Coustenoble IBM Lotus Market Manager

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

Consultant MOE/Référent technique JAVA/J2EE JSF, RICH FACES

Annexe Android Studio

Installation et prise en main

Celui qui vous parle. Yann Vigara

CONSERVATOIRE NATIONAL DES ARTS ET METIERS CENTRE REGIONAL RHÔNE-ALPES CENTRE D'ENSEIGNEMENT DE GRENOBLE EXAMEN PROBATOIRE

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

ECLIPSE RCP. Introduction

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

PROJET AZURE (par Florent Picard, A2011)

Développer pour Sharepoint 2010 et au-delà (aka SP Online)

bbc Launch Pad Juillet 2011 Version 10.0

Etude de cas : PGE JEE V2

Documentation Projet ASR : Construction d un système réparti multi-échelle

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Modélisation et Gestion des bases de données avec mysql workbench

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

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

Maîtrisez la modernisation de votre patrimoine applicatif

Wireless IP Camera 75790, 75790WH, Quick Start Guide Guide de départ rapide

TME1 Installation et programmation en ILP1

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

SonarQube : une autre vision de votre logiciel

Développement de plug-ins Eclipse en contexte agile

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Rendez-vous la liberté avec Rational Quality Manager

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Président d Inotekk Gestion de la société, développement du portefeuille clients, gestion et réalisation des projets informatiques

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

Catalogue Formation «Vanilla»

Automatisation de l administration système

Construire des plug-ins pour SAS Management Console SAS 9.1

Lancelot Bertrand Expert Java J2ee

Création d installateurs pour Windows avec InnoSetup

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

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

PRODUCTS LIST (updated 11th January 2010)

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

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

Installer Enterprise Miner 5.1 en SAS environnement Windows

Manuel de l Administrateur

Guide d'utilisation. Mendeley

Tutoriel d installation de Hibernate avec Eclipse

WINDOWS SHAREPOINT SERVICES 2007

Guide de démarrage ebox-3300-msjk Windows Embedded CE 6.0 R2

Cours en ligne Développement Java pour le web

Formation : Langues : Types d Intervention et Secteurs d Activité :

JOnAS 5. Serveur d application d

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Cedric Dumoulin (C) The Java EE 7 Tutorial

KPI (Key Performance Indicator) dans MOSS

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Générer du code à partir d une description de haut niveau

Tutoriel code::blocks

Edition de sites Jahia 6.6

Vers une meilleure gouvernance des plateformes d ingénierie

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

S10 - Automatisez la compilation et le déploiement de vos applications IBM i avec Arcad Pack for Rational

Transcription:

Présentation Eclipse Arnaud NAUWYNCK arnaud.nauwynck@gmail.com

Plan Introduction Présentation générale, Installation, Configuration Architecture en Plugins Workbench: Workspace, Perspectives, Views... Java Projects Créer et Configurer un Project Java Project Dependencies, Maven Using Eclipse JDT Browsing / Editing / Debugging

Audience - Prérequis Utilisation simple d'eclipse (Browse) MOA, Notion de Java Utilisation d'un IDE Utilisation Avancée d'eclipse (Dev, Debug...) MOE, Programmation Java Svn, Maven Développements de Plugin Eclipse Architecte, Ceinture noire Java

Introduction : Historique & Actualités Logiciel réalisé par IBM Expérience de Visual Age Smalltalk Refonte technologique en Java Auteurs connus: Erich Gamma (Gof)... Maintenant Open-Source Plus gros dont de code! Fondation Eclipse.org Nombreux partenaires / contributeurs

Marché & Concurrents Marché? : Open-Source + Gratuit... MAIS modules payant Ex: plugins pour IBM Websphere Concurrents IntelliJ IDEA Borland JBuilder MS Visual Studio Xemacs Outils spécialés : UML, SGBD, XML...

Principales Fonctionnalités d'eclipse v e D a v a J JDT S A, e c i v s t r s e e s er b n T g e g, n i r i s t e W r e l, i o in l f D p g o m I e u r l X P R U P v De WSDT TPTP Birt VE UML PDE Workbench Platform JFace Core Plugins SWT Osgi (RCP)... 10 000 Others contributions

Eclipse Platform!= Eclipse JDT Eclipse est une platforme d'intégration Eclipse n'est pas seulement JDT!! Exemple: Eclipse CDT pour C, C++ développé au même niveau que JDT... pas d'api fermée, de restrictions JDT est juste une feature d'eclipse!... mais la partie la plus connue!! Eclipse.org assure la cohérence

Distributions / Contribs Customizer/Installer son Environnement Downloader + Rajouter des plugins Analogie système Debian : choix d'une distribution type Ajout/suppression de packages standards Ajout/suppression de package contrib Pour système Eclipse : Distributions types: Eclipse SDK, Calisto, Europa,... Packages standards : cf http://www.eclipse.org Package contrib: cf http://www.eclipse-plugins.org

Software Updates Gestion des features Discover + Download + Install Check Versions + check Dépendances => use Update Manager!

Update Manager Exemple : installation de subclipse (pour SVN) Update site = http://subclipse.tigris.org/update_1.2.x

Eclipse RCP... Eclipse minimaliste Eclipse RCP = Rich Client Platform SWT +... = alternative de Swing!! Exemple: Eclipse SANS JDT! Workbench Eclipse RCP JFace SWT

Architecture d'eclipse : Plugin Rappel... règles OpenSource + d'intégration Fair-Play: everyone play with the same rule IBM / Eclipse-Org / 3rd- parties / Contributors => Traduction en Règles de plugins Tout est fait en plugin Tout le monde peut écrire des plugins Les plugins peuvent tout faire Les plugins doivent être extensibles (par plugins)

Approche par Composants : Plugins Plugin = composant prêt à plugger = ensemble consistant/indépendant de classes (approche Orienté Composant) = librairie (~ jar) + descripteur (dépendances, version) + life-cycle (deploy/undeploy) + intégration dans IDE Feature = groupe de plugins (ex: JDT)

Plugins Core BootLoader Dépendance import entre Plugins (idem librairie / package debian / projet maven...) Le plugin core / bootloader = server app Plugin = déployable ssi dépendances valides! eclipse.core (= AppServer)

Plugin Extension Points Les plugins sont isolés en sandbox... Interaction uniquement par extension-point Point d'extension = Interface = Registry d'objets gérés Extension = Implémentation concrète, instance d'objet Extension = interface/registry Extension-points = object implementation

Exemple d'extensions Dans Eclipse, presque tout est extension Tout ce qui est visible! Exemples Menu, Toolbar, Actions, Menus Contextuels Types de fichiers, Views, Editors Perspectives, Projets Builders, Launchers...

Descripteur de Plugin Extensions déclarées en XML Intéraction plugins-platform lisibles Auto documentée, browsable, en xml Chargement lazy démarrage rapide / consommation mémoire

Structure d'un Plugin Plugin = jar ou répertoire Copié dans eclipse/plugins/... Contenu : Fichier plugin.xml resources (jar, dll, etc..) I18n : properties

Installation d'eclipse List de plugins en VRAC Déclarés éventuellement en groupe : features Externalisable via Links

Installation via Extension Links Méthode recommandée... Ne pas polluer l'installation par défaut Partage multi-version (eclipse 3.3, 3.4,...) Shared eclipse / Custom links

Eclipse Workbench Concepts Malgré les 10000 contributions UI très homogène Ergonomie et Concepts cohérents ex: selection d'un objet => ctx menu identique quelque-soit l'endroit Raisons: Architecture technique très riche Composants riches => Ne pas réinventer la roue Bon Fwk : Rend simple les choses à faire... difficile les choses à ne pas faire

Eclipse Workbench Windows 1 Application -> 1..* Main Window(s) + 0..* Views Menu Principal Toolbars Working Area StatusBar Plusieurs fenêtres avec menu : Docking views (fenêtres sans menu)

Eclipse Workbench : Perspectives 1 Perspective : correspond à 1 type d'activité Exemple: Browsing, editing, debugging... Graphiquement : 1 fenêtre dans la fenêtre... mais influence Menu, Toolbar, Shortcut... Switch entre perspectives:

Perspective Toolbar Icons Astuce pour gain d'espace : no Show Text Autre config: Dock On > Left

Open New Perspective Cf menu Window > Open Perspective >...

Eclipse Views & Editors Contenus de la working area des fenêtres Dockables (config par drag & drop) Views toujours aux bords Editors toujours au centre Editors Views Editors Editors

Docking + Onglets / Editors Multi-Type Views et Editors sont superposables en onglets!= onglets (en bas) pour Editors multi-modes Ex: fichier XML => mode text, mode structure

Différences Views - Editors Editors = modification en mémoire (buffer) nom fichier avec * => necessite Ctrl+S Views = modification immédiate contient Toolbar préf. configurables, ex: Filter, Sort, Group... En général: Editors pour manipulation de fichiers Views pour Read-only, Navigation, properties...

Editors Open Editor Double-click => editor par défaut Right-click => Open with Reuse editor: 1 max par editor-type Editors = associés par type de fichiers Cf menu Window > Preferences...

Views Open View: menu Window > Show View...

Workspace Project - Resource Niveau 0: Workspace = Session de travail (répertoire racine) Contient liste de Projets Niveau 1: Projects Module de compilation Contient des resources Niveau 2-*: Resources Fichiers / Répertoires enrichis par eclipse Sources ou générés, autres...

Workspace 1 process eclipse => = session en mémoire 1 workspace = répertoire Le Workspace contient.metadata Données globales de configuration cf menu Window > Preferences... Caches, indexes...=> répertoire volumineux! Fichiers d'administration (.lock, logs...) Répertoires de Projets (déconseillé)

Start Eclipse - Workspace Au démarrage Par défaut: ~/workspace Au choix par dialog box Ou par option -data <dir> Recommandations -showlocation -data... Utiliser N scripts start.sh, 1 par env Remarques: Après un kill => supprimer fichier <workspace> /.metadata /.lock

Customisation Workspace Preferences Exemple de Preferences globales à configurer General > Run in background Compare > Ignore whitespace Java > classpath var MAVEN_REPO Java > Compiler > no clobber on clean Team > use pure java svnkit URL proxy http Schema xml...

... Projects Niveau 0: Workspace / 1: Projects / 2: Resources

Eclipse Projects Project = module de travail (compilation, run..) Contenu Fichiers.project,.classpath Répertoire(s) source Std : src/main/java et src/test/java Répertoire(s) build Std : target/classes et target/test-classes Project dependencies (project /.jar) Project.settings

Project Natures / Builders Projet (nature) Java Un projet peut avoir plusieurs natures / builders Ex: C, C++, Ejb, Xdoclet, Uml,...

New Project... New > Project... > Java Project

New Project... (2)

New Project... NO Default Location (3) Conseil : externaliser projets Changer le répertoire par défaut!!! On ne gère JAMAIS le workspace dans SVN (répertoire custom, trop volumineux...)

New Project... Properties (4) Properties configurables même après création... Cf ctx menu

Import Existing Project Ctx menu Import > Existing Project... => lien vers répertoire externe => les données ne sont pas copiées Import plutôt que new : Soit importé depuis SVN... cf cours SVN Soit généré par maven... cf next / cours maven

Delete / Close Project Delete Project => supprime le lien seulement... ne pas selectionner delete content! Close / Open Project => garder dans wsp, pas en mémoire

Projet Eclipse / Projet Référence Maven Créer un projet manuellement = pénible Référence de compilation!= Eclipse Cf Intégration Continue (lancement automatique des builds: maven...) Choix perso développeurs Customizer ses projets Utiliser un autre outil (?) La gestion des dépendances est laborieuse ==> cf Maven!!!

New Project Maven + Generate Eclipse Pour créer un projet en 1 minute!! $ mvn archetype:generate -DgroupId=<pckg> -DartifactId=<proj> ==> pom.xml + répertoires créés $ mvn eclipse:eclipse ==>.project,.classpath eclipse > import...

Maven Pom.xml Syntaxe lisible... doc: www.maven.org Approche declarative (conf!= impérative / code)

Sources Build Path Standard: src/main/java, src/test/java

Project to Project Dependencies Les Projets peuvent être dépendants entre eux Pas cycliquement! Eclipse respecte l'ordre de compilation Compilation incrémentale sans jars Ex typique: modules client/server/shared/fwk...

Project Jar Dependencies Standard: use classpath variable (cf maven) Façon déconseillée: \lib\*.jar!! ou abs. filename!

Maven2 = Gérer les Dépendances Il n'est pas rare d'importer 20-30 jars... Ex: Log4j + Commons-Lang + Commons-Utils + Spring + Hibernate + Jdbc-Oracle +... Maven simplifie les dépendances! Avec 3 lignes config ==> Download automatique des jars + versions Dépendances transitives Repository de jars (gain d'espace disque + perf IOs + Svn) Pas de scripts ant / de classpath complexes

Manually adding Eclipse Dependency Project > Properties... > Libraries > Add Variable... > Extend...

Eclipse - MAVEN_REPO A configurer 1 seule fois dans Préférences

Adding Library from Maven+Eclipse 1) Editer le fichier pom.xml exemple: ajouter log4j: 2) compile (=> download jar) $ mvn jar:install 3) Re-générer fichiers d'eclipse: $ mvn eclipse:eclipse 4) sous Eclipse : refresh project.classpath

Adding Maven Dependencies Historiquement, utilisation de repository statiques, de référence http://www.ibiblio.org/maven Utilisation des moteurs de recherches google... Mieux: moteurs de recherche + repository dédiés à maven! Exemple : Nexus hosted by Sonatype http://repository.sonatype.org/index.html

Nexus Repository ex: http://repository.sonatype.org

1000 avantages Maven Maven est un outil INCONTOURNABLE Surcouche de ant Intègre de nombreux outils Ex: junit, xdoclet, cobertura, findbugs... presque SANS code : plugins prèt à l'emploi Config déclarative de projets : pom.xml Lancement $ mvn jar:install <plugin>:<goal> En intégration continue: CruiseControl... Cf. doc maven...

Conclusion Questions Eclipse? Questions Maven? A voir aussi Integration Continue Junit, Cobertura, Ioc, Spring Hudson Sonar Jira