Activité Visual Studio Code et Maven

Situation

Vous venez d’être engagé à un poste de développeur et c’est votre premier jour. Votre première tâche est d’installer votre environnement de développement Java.

Consigne

On vous demande de prendre connaissance de l’activité et réaliser les tâches décrites ci-après.

Objectifs

À la fin de ce travail, vous devez :

  1. Savoir ce qu'est maven
  2. Savoir ce qu'est un projet maven
  3. Connaître les programmes en ligne de commande mvn et java.
  4. Être capable de compiler une application java avec mvn.
  5. Être capable d'exécuter des tests unitaires avec mvn.
  6. Être capable de lancer l'exécution d'un jar avec java.
  7. Être capable d'ouvrir un projet maven dans Visual Studio Code
  8. Être capable d'utiliser maven avec Visual Studio Code.
  9. Être capable d'utiliser le debugger avec Visual Studio Code.
  10. Être capable d'utiliser le terminal intégré de Visual Studio Code

Prérequis

Les prérequis nécessaires au bon déroulement de cette activité sont :

  1. Connaître les bases de Visual Studio Code (Introduction à VSC).

Résultat attendu

  • Une RefCard (reference card) où vous aurez décrit les différentes commandes ainsi que les touches de raccourcis utilisées. Pour la réaliser, vous pouvez vous inspirer de la refCard de vi.

Ressources

Documents :

Logiciels :

  • Visual Studio Code
  • git
  • Vagrant
  • Machine virtuelle de développement

Configurer votre environnement

Pour cette activité, nous faisons l’hypothèse que les logiciels suivants sont installés :

  • Visual Studio Code
  • git
  • Vagrant
  • Machine virtuelle de développements (dev-vm)

Si ce n’est pas le cas ou si vous n’en êtes pas sûr, veuillez suivre le tutoriel Installation des outils de développement

Ouvrez ensuite une fenêtre de terminal sans privilèges, tapez la commande ci-dessous et notez les trois premiers chiffres (caractères) de l’identifiant (id).

1
vagrant global-status

L’identifiant de la machine ne change pas tant que vous ne la supprimez pas. Cet identifiant vous permet de lancer la machine sans avoir à vous rendre dans le répertoire qui contient le Vagrantfile. Pour cela, tapez la commande ci-après en remplaçant <id> par les trois premiers chiffres de l’identifiant.

1
vagrant up <id>

Lorsque la machine a démarré, vous pouvez ouvrir une session ssh sur votre machine virtuelle avec la commande suivante :

1
vagrant ssh <id>

Si la commande a correctement fonctionné, votre terminal est maintenant connecté au shell (bash) de votre machine virtuelle. Lancez la commande suivante pour vous rendre dans votre répertoire de projets. Le signe ~ (tilde) désigne le répertoire personnel de l’utilisateur avec lequel vous êtes connecté à la machine virtuelle : /home/vagrant/.

1
cd ~/projects

Le contenu du répertoire de projets (/home/vagrant/projects) n’est pas stocké dans le système de fichier de la machine virtuelle, mais dans celui de votre ordinateur. En cas de problème, vous pouvez donc détruire et recréer la machine virtuelle sans perdre le résultat de votre travail.

Utiliser Maven

Maven est un système de gestion de dépendance et d’automatisation de production de projet logiciel (build automation system) pour Java. Un projet Maven est un répertoire qui contient un fichier pom.xml qui contient une description du projet. Cette description est formulée dans un langage XML appelé POM (Project Object Model). Grâce à cette description, Maven est notamment en mesure d’effectuer les tâches suivantes :

  • télécharger les bibliothèques dont dépend le projet depuis un dépôt central (maven central repository)
  • compiler les classes de votre projet,
  • produire une archive JAR avec les classes compilées,
  • compiler les tests unitaires,
  • exécuter les tests unitaires et générer un rapport,
  • produire un site web à partir des commentaires javadoc pour la documentation de vos classes.

Maven s’utilise avec la commande mvn suivie du nom d’un goal ou d’une phase de construction. L’argument -h ou --help permet d’afficher une aide succincte sur les options disponibles. Pour plus d’information, vous pouvez consulter la documentation en ligne Documentation Maven

Créer un projet

Le premier goal que nous allons invoquer est archetype:generate. Il permet de créer un squelette pour notre projet à partir d’un modèle appelé «archetype».

Pour créer votre premier projet, que nous appellerons « activity0 », commencez par vous rendre dans le répertoire dev-vm et lancez la commande vagrant up pour vous assurer que la machine virtuelle est bien démarrée.

Lorsque la machine virtuelle est démarrée, vous devez ouvrir une session sur cette machine. Une première possibilité est d’utiliser la commande vagrant ssh dans le répertoire dev-vm. Une seconde possibilité est d’ouvrir une session avec Visual Studio Code et d’utiliser le terminal intégré. Puisque notre intention est d’utiliser la machine virtuelle pour faire du développement en Java, c’est cette option que nous retenons. Ouvrez donc Visual Studio Code et ouvrez une session de développement à distance. Si vous ne savez pas comment faire, suivez le tutoriel Développer avec une machine virtuelle. Lorsque Visual Studio Code est connecté à la machine virtuelle, ouvrez le terminal intégré (voir documentation) et rendez-vous dans le répertoire ~/projects avec la commande :

1
cd ~/projects

Vous pouvez maintenant lancer la commande ci-après pour créer votre projet. Cette commande vous permet de créer facilement d’autres projets en changeant seulement les deux derniers arguments. L’argument -DgroupId=ch.epai.ict.m404.activity0 représente le nom du package et l’argument -DartifactId=activity0 représente à la fois le nom du projet et le nom du répertoire du projet. La valeur de l’argument -DgroupId doit respecter la syntaxe du la directive package de Java. Pour la valeur de l’argument -DartifactId, il est recommandé de n’utiliser que les lettres minuscules sans accents, les chiffres et le tiret.

1
mvn archetype:generate -DarchetypeArtifactId="archetype-quickstart" -DarchetypeGroupId="ch.epai.ict.maven.archetype" -DarchetypeCatalog=internal -DinteractiveMode=false -DgroupId="ch.epai.ict.m404.activity0" -DartifactId="activity0"

Déplacez-vous dans le répertoire activity0 qui vient d’être créé et ouvrez ce répertoire dans Visual Studio Code en tapant la commande suivante :

1
code -r .

L’option -r indique à Visual Studio Code d’ouvrir le projet en utilisant la fenêtre courante au lieu d’en créer une nouvelle.

Compiler et exécuter les tests

Pour compiler votre code, il suffit de taper la ligne de commande suivante dans le terminal intégré. Après quelques instants, un message vous indique que l’opération s’est terminée avec succès ou qu’une erreur est survenue.

1
mvn verify

Exécuter un programme Java

Pour exécuter votre application, lancer la commande ci-après. Le nom du fichier jar dépend du nom de votre projet. Listez les fichiers du répertoire target après avoir compilé votre projet pour en connaître le nom exacte.

1
java -jar target/activity0-1.0-SNAPSHOT.jar

Utiliser Visual Studio Code

Pour vous familiariser avec Visual Studio Code, il est recommandé de consulter les resources de la documentation en ligne. Vous pouvez consulté en particulier la page consacré au langage Java.