Description du projet Modèle d'objet

L'une des choses que Maven a normalisées en premier lieu était la description du projet. Avant Maven, chaque IDE avait son propre fichier de projet, qui stockait des informations sur le projet et son assemblage (et souvent sous forme binaire).

Maven a mis au point une norme ouverte, universelle et basée sur XML qui décrit ce qu'est un projet, comment il doit être construit et quelles dépendances il a à l'aide de diverses balises. La description du projet est contenue dans un seul fichier, généralement nommé pom.xml .

Un exemple de fichier pom.xml :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io </groupId>
           <artifactId>commons-io</artifactId>
        <version>2.6</version>
        </dépendance> <
   /dépendances>


</projet>

Cet exemple a trois choses écrites :

  • Les informations sur la version de la norme du projet maven sont en bleu.
  • Les informations sur le projet lui-même sont en rouge.
  • Les informations sur les bibliothèques utilisées sont en vert.

Examinons de plus près le périphérique de fichier pom.

Structure du projet Maven

Et immédiatement la question est : avez-vous prêté attention à l'étrangeté du dernier exemple ? Il ne contient pas d'informations sur le code du projet lui-même ! Il n'y a pas de mot sur l'endroit où les fichiers Java, les ressources, les fichiers de propriétés, le HTML, les scripts de construction et autres sont stockés.

Et la réponse est simple - Maven a standardisé la conception du projet. Il existe plusieurs options pour organiser le code au sein d'un projet, et la plus courante est :

La structure est un peu inhabituelle après les projets IDEA standard, mais pour cela, elle est universelle. 90% des projets que vous rencontrerez dans votre vie auront cette structure de dossiers .

Si vous créez un projet Maven (en utilisant IDEA ou en utilisant la console), il prendra la forme spécifiée. Voyons comment tout cela fonctionne ici.

Le dossier src , vous l'avez deviné, contient le code source du projet. Il contient deux sous-dossiers : main et test .

Le dossier /src/main/java est la racine de toutes les classes Java du projet. Si vous avez une classe com.codegym.Cat, elle se trouvera dans le dossier /src/main/java /com/codegym /Cat.java . S'il existe des ressources textuelles ou binaires, elles doivent être stockées dans le dossier /src/main/resources .

La structure du dossier /src/test est similaire à la structure du dossier /src/main , mais il contient les tests et leurs ressources. Maven lui-même sait comment exécuter les tests nécessaires lors de la construction d'un projet, mais nous en parlerons dans une conférence séparée.

Il existe également un dossier /target dans le projet , où Maven enregistrera le projet après sa construction. Étant donné que les grands projets ont souvent des scripts de construction non triviaux, rien n'est stocké dans ce dossier.

Le deuxième objectif du dossier /target est de mettre en cache les résultats de génération intermédiaires. Lors de la construction d'un grand projet, Maven ne peut reconstruire que la partie qui a changé, accélérant ainsi le temps de construction de plusieurs fois.

Eh bien, comme cerise sur le gâteau - à la racine même du projet se trouve le fichier pom.xml. Il contient toutes les informations nécessaires sur le projet, dont nous parlerons ci-dessous.

Périphérique pom.xml

Pour commencer, le fichier pom est xml, il contient donc les en-têtes standard et les informations sur les espaces de noms. Il s'agit de la norme purement XML, nous n'en parlerons donc pas en détail. Cela signifie ceci :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

        …

</projet>

De plus, généralement la première ligne à l'intérieur de la balise <project> est une description de la version de la norme pom-file. C'est presque toujours 4.0. Cela aussi ne nous intéresse pas.

Les premières lignes qui nous intéressent ressemblent à ceci :

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sample.app</groupId>
  <artifactId>nouvelle-application</artifactId>
  <version>1.0-SNAPSHOT</version>

Pour ne pas comprendre encore une fois ce que nous décrivons (programme, projet, module, bibliothèque, etc.) dans le standard Maven, tout cela s'appelle le mot artefact . Ce que vous ne pouvez pas refuser aux créateurs de Maven, c'est l'amour de la standardisation.

Les trois balises que vous voyez signifient :

  • groupId - le package auquel appartient l'application, avec l'ajout du nom de domaine ;
  • artefactId – clé de chaîne unique (identifiant du projet) ;
  • version - version du projet.

Ces trois paramètres suffisent à décrire sans ambiguïté n'importe quel artefact .

De plus, après la description du projet, il y a généralement une liste d'artefacts (bibliothèques) que le projet utilise. Cela ressemble à ceci :

   <dependencies>

       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>

   </dependencies>

Dans cet exemple, nous ajoutons la bibliothèque commons-io du package commons-io, version 2.6, à notre projet.

Au moment de la construction, Maven trouvera une telle bibliothèque dans son référentiel global et l'ajoutera à votre projet. Et au fait, non seulement Maven peut le faire.

Comment IDEA fonctionne avec Maven

Intellij IDEA est excellent pour travailler avec Maven. Elle sait ouvrir de tels projets, les créer elle-même, exécuter divers scripts de construction et comprend parfaitement les bibliothèques incluses.

Il a même son propre Maven intégré pendant un certain temps, mais vous devez toujours pouvoir l'installer et le configurer vous-même, donc cette fonctionnalité d'IDEA n'a pas été mentionnée plus tôt. En théorie, IDEA peut avoir un conflit entre deux Mavens, il est donc bon que vous sachiez qu'il y en a deux.

Comment créer un nouveau projet Maven dans IDEA :

Cliquez sur le menu Fichiers > Nouveau projet. Sélectionnez l'élément de menu Nouveau projet à gauche .

projet maven

Précisons quelques points :

  1. Nom du projet;
  2. Dossier pour le projet ;
  3. Le langage du projet est Java ;
  4. Le type de projet est Maven.

Dans la section Paramètres avancés en bas, IDEA vous demandera de spécifier l'ID de groupe, l'ID d'artefact et la version de notre nouveau projet. Ces données peuvent toujours être facilement modifiées ultérieurement. Choisissez parmi ceux suggérés ou entrez les vôtres :

Projet Maven 2

Ensuite, créez normalement un projet à l'emplacement requis. En conséquence, nous voyons la structure:

Projet Maven 3

Les classes et les packages doivent être créés dans le dossier java, nous en avons déjà parlé. Et je pense que vous pouvez facilement le gérer. Nous sommes prêts à passer à autre chose, mais revenons un peu en arrière, sur un point important que nous avons un peu "sauté".