Tag Archives: Eclipse

Eclipse et les modules Java

Photon – 4.8 (Juin 2018), inclu des fonctionnalités de configuration des projets Java pour prendre en charge la notion de module introduite en Java 9.

1. Un projet de démonstration

Dans eclipse créer un nouveau projet Java: Sélectionner le menu : File / New / Project.Sélectionner Java Project. Ensuite, l’utilisation du bouton Next permet d’accéder à la fenêtre de configuration du projet. eclipse modules java Saisir le nom du projet et sélectionner la version 9 de Java au minimum comme cible d’exécution. Utiliser le bouton Finish pour lancer la création du projet. A ce stade, une fenêtre s’affiche pour suggérer la création du fichier descripteur de module module-info.java du projet: eclipse modules java Si on aurait choisit Java 1.8 ou inférieur comme version cible d’exécution, cette fenêtre ne s’afficherait pas. Pour le besoin de démonstration, on va décliner cette offre et continuer avec un projet compatible Java 1.8 et inférieur. On clique donc sur Don’t Create et Eclipse génère le projet comme demandé. Sélectionner le nouveau projet dans l’explorateur de package (volet de gauche) et faire un click droit de la souris puis accéder au menu de création d’une nouvelle classe: New / Class. eclipse modules java Ce menu mène à la fenêtre de cration d’une nouvelle classe: eclipse modules java Eclipse ajoute le fichier de la nouvelle classe qu’il convient de compléter comme suit (ligne à rajouter): eclipse modules javaA ce statde la création du projet de démonstration est terminée. On peut l’exécuter pour afficher le message de test. On se propose dans la suite de transformer ce projet en module Java.

2. Le fichier descripteur de module

Si le projet Eclipse est un module Java, il faudra qu’il inclut le fichier descripteur de module module-info.java dans la racine du projet (voir l’article à ce sujet). Une fonctionnalité Eclipse permet de créer ce fichier. eclipse modules java Click droit sur le projet, ensuite Configure / Create module-info.java. L’utilisation de ce menu permet d’accéder à la même fenêtre de création de module rencontrée à la première génération du projet. Dans cette fenêtre saisir net.meddeb.eclipsemoduletuto comme nom de module et valider avec le bouton Create. eclipse modules java Eclipse génère, alors, le fichier descripteur de module avec le nom saisi. Ce fichier généré exporte l’unique package de notre projet. On constate que cette transformation en module ne change rien à cette application et elle continue à s’exécutable de la même manière. Pour le besoin de démonstration, on va faire évoluer cette application de manière qu’elle affiche un autre message en passant par l’API de logging de Java. Modifier le fichier de la classe Mainclass pour que son contenu devienne (copier / coller):
package net.meddeb.eclipsemoduletuto;
import java.util.logging.Logger;
public class Mainclass {
  public static void main(String[] args) {
    System.out.println("Hello eclipse Java !");
    Mainclass m = new Mainclass();
    m.afficherMessage();
  }
  public void afficherMessage() {
    final Logger logger=Logger.getLogger(this.getClass().getPackage().getName());
    logger.info("Hello eclipse Java module !");
  }
}
Après cette modification la compilation de l’application échoue. La raison est que le package java.util.logging utilisé par cette modification n’est pas accessible du fait de la modularisation du code. La solution est de déclarer implicitement le besoin de notre application/module à ce package. Pour le faire, modifier le fichier descripteur de module de manière que son contenu devienne:
module net.meddeb.eclipsemoduletuto {
  exports net.meddeb.eclipsemoduletuto;
  requires java.logging;
}
L’explication est que le code supplémentaire utilisé se trouve dans le package  java.util.logging, exporté par le module du JRE java.logging. Pour pouvoir l’utiliser il faudra inclure ce module dans une clause requires du fichier descripteur. Une question légitime se pose dans ces conditions: pourquoi l’application se compilait et s’exécutait sans problème avant cette modification, alors qu’aucune clause requires n’a été utilisée ? La réponse à cette question est que le code de définition de la classe et le code de System.out utilisé pour l’affichage du message se trouvent dans le module de base du JRE java.base. C’est l’unique module qui est référencé implicitement et n’a pas besoin de figurer explicitement dans une clause requires du module qui l’utilise. D’un autre côté, pour que la compilation et l’exécution donctionnent, l’emplacement des fichiers des modules utilisés doit figuer dans le chemin de recherche des modules: le Modulepath.

3. Modulepath et Classpath

Faire un click droit sur le projet dans le volet de gauche, puis accéder au menu Build Path / Configure Build Path.. eclipse modules java La fenêtre de configuration des chemins de construction du projet apparaît et on peut remarquer l’existence de deux types de chemins. Le chemin des modules utilisés Modulepath et le chemin de compatibilité le Classpath.eclipse modules java Eclipse a référencé pour nous la totalité du JRE cible de l’exécution dans le Modulepath du projet. Ouvrir le contenu de ce JRE, les deux modules utilisés par le projet apparaîssent bien dans cet endroit: ]]>

Tuto Git – Utiliser Git avec eclipse: publier, tagger, visualiser

Objectif: Publier un projet sur un serveur distant avec Git sous eclipse. Pouvoir poser des tags et consulter l’historique et les paramètres du projet avec cet outil. Pré-requis: Fonctionnement de Git et l’article précédent à propos de l’utilisation de Git avec eclipse.

1. Créer le dépôt du projet calcul sur le serveur.

Conformément à l’environnement de simulation mis en place dans cette serie d’articles sur Git, on crée le dépôt du projet “calcul” du côté serveur. Cette étape ne concerne pas l’utilisateur de Git mais plutôt un administrateur système. D’un autre côté, dans un environnement réel elle s’effectue sur une machine serveur distante, le plus souvent accessible via HTTP par les utilisateurs.
cd /serveurgit
git init --bare calcul.git
Ceci créee le dépôt Git du projet dans le dossier /serveurgit/calcul.git/. Cette mise en place nous permettra de nous servir de ce dépôt pour simuler la publication du projet sur un serveur distant.

2. Publier le projet dans le dépôt du serveur.

Jusqu’à présent les “commit” effectués (cf. article “Git avec eclipse“), l’ont été dans le dépôt local sur la machine du développeur. Pour partger ce projet avec d’autres développeurs, il convient de le publier dans le dépôt distant (remote) du serveur. Pour le faire avec Git sous eclipse il faut sélectionner le projet dans l’explorateur (volet par défaut situé à gauche) et ensuite utiliser le menu contextuel (Click avec le bouton droit de la souris). Tuto GitUtiliser le menu: Team / Push branch master. Ceci conduit à l’assistant de publication: Tuto GitLe dossier qui simule le dépôt du serveur étant local en réalité, nous utilisons le bouton “Local File..“. Il nous permettra de sélectionner facilement l’emplacement du dépôt à utiliser, c’est à dire “/serveurgit/calcul.git“. Ceci alimentera les champs “URI” et “Repository path” sans saisie. Le champ “Remote name” doit être gardé à sa valeur par défaut: “origin“, c’est une convention de Git de nommer le dépôt distant ainsi et il vaut mieux la garder. A ce sujet, il convient de noter qu’en réalité le serveur distant est accessible généralement par le protocole HTTP (tel que https://github.com/ameddeb/japptools.git) ou le protocole propre à git (tel que git://github.com/ameddeb/japptools.git). Le paramétrage utilisé est dicté par la situation de simulation uniquement. Après la saisie, le bouton “Next” permet de passer à l’étape suivante. Tuto GitLes valeurs par défaut sont convenables, on les garde et on utilise le bouton “Next” pour passer à l’étape suivante. Tuto GitOn utilise le bouton “Finish” pour finaliser la publication. A ce stade le dernier commit du projet est publié sur le serveur.

3. Poser un Tag dans le projet.

Avant de poser un Tag, qui constitue généralement un marquage pour une version du projet, nous allons faire évoluer le fonctionnement. Pour cela on effectue la modification suivante dans le fichier App.java:
public static void main( String[] args )
{
      System.out.println( "125 x 3 = " + 125*3 );
}
On remplace simplement l’affichage de “Hello world!” par le calcul de la multiplication. Ensuite, après avoir exécuté avec succès le nouveau code et surtout pas avant, comme c’est malheureusement la cas souvent dans la réalité de tous les jours, on valide (commit) la modification dans le dépôt local. Tuto GitOn utilise le bouton “Commit” après avoir indexé le projet et saisie le message. Suite à cela on va ajouter un calcul d’addition au projet:
   System.out.println( "450 + 343 = " + (450 +343) );
De la même manière que pour la multiplication, on valide (commit) également cette nouvelle modification en adaptant le message. Maintenant que le projet est suffisamment évolué, on se propose de poser un Tag de version “v1.0“. Pour cela on utilise le menu contextuel du projet calcul: Tuto GitTeam / Advanced / Tag.., Ce menu donne accès à l’écran de création de Tag: Tuto GitDans cet écran, on saisie le Tag (Tag name), le message qui l’accompagne (Tag message) et ensuite on utilise le bouton “Create Tag” pour le créer effectivement. Remarquer toutefois la présence du bouton “Create Tag and Start Push” qui permet de créer le Tag et de publier sur le serveur distant en même temps.

4. Visualiser les données du dépôt.

On peut visualiser le paramétrage du dépôt en utilisant le menu destiné à cet effet: Tuto GitTeam / Show in Repositories View, Ce menu permet d’accéder aux informations qui s’affichent dans le volet bas de l’espace de travail d’eclipse: Tuto GitOn remarquera notamment la possibilité de visualiser les branches, les Tags et le paramétrage des dépôts distants (perce qu’on peut en avoir plusieurs mais cela est autre sujet). Par ailleurs, on peut visualiser également l’historique du projet, équivalent de “commit log“, en utilisant le menu au dessus du précédent: Team / Show In History. Cela donne l’affichage de l’historique: Tuto Git]]>

Tuto Git – Utiliser Git avec eclipse

Objectif: Comprendre les procédures d’utilisation de Git pour gérer un projet développé avec eclipse. Le principal intérêt est un meilleur confort avec l’interface graphique mais aussi une utilisation integrée à cet IDE. Pré-requis: Etre familier avec Git et son utilité (cf. articles précédents à ce sujet).

1. Créer un projet Java Maven autonome.

Le menu à utiliser est : File / New / Maven Project Tuto gitSi le sous-menu “Maven project” n’apparaît pas dans votre version d’eclipse, utiliser le sous-menu “Other..” qui donne accès à cette fonctionnalité. Ce menu affiche la fenêtre: mTuto gitIl suffit de clicker sur “Next”, car on souhaite utiliser un archetype de création de projet. Tuto gitUn archetype Maven est un assitant qui facilite la création d’un gabarit de projet. Sélectionner “quickstart” qui permet la création d’un projet autonome simple. Tuto gitSaisir le “Groupe Id” (généralement le domaine de l’oganisme pour l’unicité universelle) et l'”Artifact Id” (généralement le nom de l’application). Après cliquer sur  “Finish” pour créer le projet. Tuto gitLe nouveau projet est prêt à l’emploi, il est exécutable immédiatement et sans aucune modification (mais bien entendu ne fait rien d’autre que d’afficher “Hello world”).

2. Gérer le projet avec Git

Dans l’explorateur de projets, sélectionner le projet “calcul” et utiliser le menu contextuel d’eclipse (click sur le bouton droit de la souris). Tuto gitDans le menu “Team“, sélectionner le sous-menu “Share project“, ceci lance la procédure d’integration du projet à Git. Tuto gitSélectionner la case à cocher “Use or create repository in parent folder of project“, l’affichage devient: Tuto gitEnsuite utiliser le bouton “Create repository“.. Tuto gitA l’étape suivante, il faut cocher l’unique projet à prendre en compte et ensuite utiliser le bouton “Finish“. Cette procédure permet de mettre le projet calcul sous le contrôle de Git.

3.Commiter le projet.

Le projet calcul étant sous le contrôle de Git, si on active le menu contextuel “Team” (cf. paragraphe 2,; étape 1) on constate que les commandes de Git sont maintenant disponibles. git-firstcommitOn reconnait notamment les commandes:
  • Commit” : permet de valider des modifications de fichiers (équivalent de “git commit“).
  • Add to index” : permet d’ajouter des fichiers à l’index (équivalent de “git add“).
On va utiliser le menu “CommitTuto gitTout d’abord il faut ajouter les fichiers à l’index. On sélectionne les fichiers puis on utilise le menu contextuel (click droit) “Add to index“. Bien entendu on aurait pu utiliser le menu de cette fonctionnalité dès le départ, mais on procédant ainsi, on fait tout dans la même fenêtre (équivalent de “git commit -a“) Tuto gitEnfin, on saisit le message du commit et on actionne le bouton “Commit“. Ceci valide les fichiers sélectionnés dans le dépôt local de Git.]]>

Utiliser TomEE avec Eclipse

Objectif: Configurer Eclipse pour utiliser le serveur d’applications TomEE comme cible de développement. Prérequis: TomEE est installé sur la machine locale cf. l’article “Installer TomEE” 1. Activer la perspective Java JEE Soit activer le bouton dans le coin supérieur droit. Soit utiliser le menu: Window / Open perspective / Other… puis choisir Java EE dans la liste 2. Faire apparaître l’onglet “Servers” du volet bas Utiliser le menu: Window / Show View / Servers eclipse-tomee-1 3. Paramétrer TomEE Cliquer sur le lien “No servers are available…” eclipse-tomee-2 Une fenêtre de paramétrage d’un nouveau serveur s’affiche. eclipse-tomee-3Choisir: Apache / Tomcat v7.0 server. Ensuite “Nexteclipse-tomee-4eclipse-tomee-5 Saisir un nom significatif et utiliser le bouton “Browse..” pour sélectionner l’emplacement d’installation de TomEE. Utiliser ensuite le bouton “Next” et “Finish” dans le dernier écran. eclipse-tomee-6TomEE est désormais intégré à Eclipse et peut exécuter des applications pendant leur développement.]]>