Jump to content
×
×
  • Create New...

Apache Maven


Calypso
 Share

Recommended Posts

  • Retraité

Niveau requis Intermédiaire

 

Salut tout le monde !

 

Aujourd'hui je viens vous présentez un petit bijoux : Maven ! Il vous sera peut-être utile pour vos futur projets JAVA !

 

Maven c'est quoi ?

 

Révélation

 

Maven est un est un outil pour la gestion et l'automatisation de production des projets logiciel pour JAVA. Alors qu'est ce que c'est la gestion et l'automatisation de production des projets logiciel ? C'est en gros un logiciel qui vous permet d'automatiseer plusieurs actions comme le linkage, la compilation, etc...

 

Pour les connaisseurs de CMake sur Unix, c'est exactement la même chose. CMake est un moteur de production tout comme Maven.

Il vous suffit juste d'exécuter le make pour construire votre programme. (Maven est basé sur le XML) Maven utilise le POM (Project Object Model)

 

 

Mais le POM c'est quoi ?

 

Révélation

 

C'est tout simplement la description de votre logiciel. Il contient par exemple le nom du projet, sa version, les bibliothèques nécessaire à la compilation, ses dépendances, etc ... Si on reprend l'exemple d'Unix, on peut dire que le POM est en fait un CMake (même si ça en est pas un, c'est juste pour vous faciliter la compréhension). C'est lui qui va construire votre programme.

 

Voici un exemple de POM :

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.funkyemu
funkyemu1
0.0.1
jar

1.7
1.7
UTF-8

sonatype-snapshots
sonatype snapshots repo
https://oss.sonatype.org/content/repositories/snapshots

com.funkyemu
funkyemu2
0.0.1

com.esotericsoftware.kryo
kryo
2.23-SNAPSHOT
On peut voir que la compilation de funkyemu1 dépend de funkyemu2.

Enfin, si vous savez lire, vous avez déjà du le remarquer :D

 

Sur un projet Maven, vous devriez avoir un fichier pom à la racine.

Et quel est le format de ce fichier ?

Bah le XML, c'est sur le XML que Maven est basé !

 

 

Une organisation pour Maven ?

 

Révélation

 

Oui, si vous utilisez Maven, vous êtes dans l'obligation d'organiser vos fichiers comme ils l'ont imposés. A quoi ça sert ? A mieux organiser vos configurations, c'est quand même plus lisible. Je pense que vous êtes entrain de vous rendre compte de la puissance de Maven ! Voila comment est organisé la plupart du temps un projet Maven :

 

  • /src : le code source du projet
  • /src/main : le code source principal
  • /src/main/java : code source
  • /src/main/resources : fichiers de ressources (images, fichiers annexes etc....)
  • /src/main/webapp : l'application web du projet
  • /src/test : fichiers de test
  • /src/test/java : code source de test
  • /src/test/resources : fichiers de ressources de test
  • /src/site : informations sur le projet et les rapports générés suite aux traitements effectués
  • /target : fichiers résultat, les binaires (du code et des tests), les packages générés et les résultats des tests

 

 

Les goals, qu'est ce que c'est ?

 

Révélation

 

Un goal est une tâche qui peut peut être exécuté avec d'autres goals si on le souhaite. Par exemple, si j'utilise le goal compile, il va tout simplement compiler le code source. Si au contraire, j'utilise le goal test, il ne va compilé que le code source de test (voir l'arborescence des fichiers ci-dessus) Mais tout est lié  (

 

 

) ! Par exemple, si vous utilisez le goal install, il va vérifier si le goal package s'est exécuté correctement. Le goal package: Il assemble le code compilé en un .jar Le goal install va donc allé voir si le fichier jar existe bien dans le dossier /target. S'il n'existe pas, il ne pourra pas être exécuté. (install permet de partager le jar pour d'autres projets.

 

Le goal validate lui, vérifie si votre POM est correct, si vous avez tous les pré-requis pour que la compilation se passe correctement. Un autre exemple, si j'utilise les goals: clean compile package Mavan va dans un premier temps regarder si vous avez tous les pré-requis pour compiler, ensuite il va compiler votre code et il finira par transformer votre programme en un .jar, d'où le package

 

Voici une liste des POM :

 

  • compile
  • test
  • package
  • install
  • deploy
  • validate

 

Mais il y en a d'autres (sont peu utilisés):

 

  • clean
  • assembly:assembly
  • site
  • site-deploy
  • etc...

 

 

Maven sous Eclipse ?

 

Révélation

 

Oui, vous pouvez téléchargez Maven sur le MarketPlace d'Eclipse. Une fois téléchargé et installé, il faut compiler votre code source avec Maven. Si vous voulez compilez un projet sous maven, inutile de créer un projet Maven, créez plutôt un projet normal étant donné que le projet est déjà sous Maven (l'arborescence des fichiers ! Dans le cas contraire, où vous voulez faire un projet sous Maven, créez un projet sous Maven.

 

Dans mon cas, je veux juste vous montrez comment fonctionne la compilation. Faites un clique droit sur votre configuration, Run as ... puis run configuration. Choisissez Maven Build et vous devriez tomber sur:

 

Révélation

.png

 

Ha bah tiens, vous retrouvez le champ Goals ! Et bien c'est ici que vous pouvez mettre la tâche a exécuté (vous pouvez en mettre plusieurs) Dans base directory, vous choisissez le dossier de base de votre projet, le cœur de votre projet. (où est contenu le POM) Dans JRE, vous pouvez choisir avec quel JRE vous voulez le compiler. Je n'ai connaissance que des principaux paramètres, je ne sais pas vraiment à quoi correspond les autres paramètres.

 

 

Cordialement,

Hey hey

  • J'adore 1
Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

  • 1 year later...
 Share



  • Flux d'Activité

    1. 0

      Projet Genesis

    2. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    3. 0

      Metin2 Champions - Accès anticipé

    4. 0

      Barbok

    5. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    6. 2

      Partage Émulateur 2.63

    7. 2

      Partage Émulateur 2.63

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.