dimanche 16 mars 2014

Maven en quelques urls

     Ce billet pour donner quelques urls utiles quand on utilise Maven. Je ne détaillerais pas tout ce que permet de faire cet outil car c'est vaste et les nombreux posts, livres à ce sujet le font déjà très bien.

     Pour commencer forcément : http://maven.apache.org/

La dernière version est actuellement Maven 3.2.1
L'historique des versions est disponible sous http://maven.apache.org/docs/history.html

Maven c'est quoi


Maven dans les grandes lignes c'est (http://maven.apache.org/what-is-maven.html) :
  • un outil pour "builder" les projets Java avec un cylcle de vie  bien défini.
  • un outil qui permet de gérer les dépendances aux librairies externes.
  • un outil qui peut distribuer/versionner les librairies Java via les systèmes de repository (local, intranet, internet).
 Un peu d'histoire sur Maven et sa philosophie.

Les solutions alternatives


     Les premières alternatives plus rudimentaires sont le scripting (sh, bat, ...) ou le make. En dehors de ces dernières il existe principalement trois autres solutions plus évoluées

Ant : http://ant.apache.org/
L'un des premiers à avoir permis de scripter des builds de projets Java en standardisant des tasks.

Ant et Ivy : https://ant.apache.org/ivy/
Ivy pour une gestion de dépendances dite agile qui est devenu officiellement un sous projet de Ant en 2007 (Mail de passage à l'incubator) permettant ainsi une complémentarité de ces deux projets.

Gradle : http://www.gradle.org/
Solution open source dont la communauté est drivé par GradleWare. Le code est disponible sous GitHub.

Gradle, Ivy et Maven via des plugins peuvent s'intégrer dans les différentes EDI (Eclipse, NetBeans, IntelliJ)

Maven c'est aussi un outil en ligne de commande


     Maven un outil en ligne de commande qui s'étend par système de plugin. Il en existe de très nombreux maintenus par Apache Maven ou d'autre organisations.

     Ces plugins permettent d'apporter de nouvelles fonctionnalités (déploiement sur des serveurs applicatifs, visualisation de dépendances, couverture de code par les tests unitaires, ...) ou peuvent faciliter l'intégration dans d'autres outils comme les serveurs d'intégration continu tel Jenkins.

Quelques plugins : http://maven.apache.org/plugins/index.html

En plus des plugins existant chacun peut développer les siens, adaptés à ses besoins

Maven : un repository et un outil de gestion de dépendances

 

     Les repository Maven sont les emplacements où sont distribuées/récupérées les librairies nécessaires aux builds de vos projets. On a un repository local sur le poste sur lequel on travail mais (fonction de la configuration utilisée) on peut être en interaction avec un repository Maven central, un repository d'entreprise, un repository d'éditeur (par exemple JBoss).

Les principaux repository Maven officiels : http://maven.apache.org/repository/index.html

Les outils permettant de faciliter la gestion des repository :
Une matrice de comparaison de leurs features : http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

 Rechercher une librairie sur un repository Maven central :
http://repo.maven.apache.org/maven2/
http://search.maven.org/#browse

Comment faire lorsque l'on est développeur et que l'on souhaite voir son framework publié sur un repo centrale Maven : http://lkrnac.net/blog/2014/03/06/deploy-to-maven-central/

Quelques ressources sur Maven 



Aucun commentaire:

Enregistrer un commentaire