Le repo Maven secret d'Ubuntu
Par Julien Furgerot le vendredi 9 juillet 2010, 11:47 - Informatique - Lien permanent
Récemment je faisais quelques menus développements Java sur mon Ubuntu, et j'ai eu besoin de la librairie java commons-httpclient. Auparavant, le plus simple consistait à télécharger la librairie sur le site du projet et l'intégrer dans son projet. Mais pour peu que vous ayez pas mal de projets en cours, ça fait beaucoup de librairies à chaque fois recopiées. La seconde solution un peu plus évoluée consiste à utiliser maven et se faire un repository local de librairies.
Mais maintenant, c'est facile avec Ubuntu. De nombreuses librairies Java sont disponibles à l'installation par paquet depuis apt-get/aptitude/Synaptics. J'ai donc installé la librairie httpclient de cette façon et regardé la liste des fichiers installés par le package sur le site Ubuntu pour trouver le répertoire contenant mon jar. C'est là que j'ai remarqué les lignes suivantes :
/usr/share/java/commons-httpclient-3.1.jar
/usr/share/java/commons-httpclient.jar
/usr/share/maven-repo/[...]/commons-httpclient-3.1.jar
/usr/share/maven-repo/[...]/commons-httpclient-3.1.pom
D'une part Ubuntu installe les librairies Java dans /usr/share/java, mais il maintient en plus un repository Maven local dans /usr/share/maven-repo. L'explication est simple : le système de construction des packages Ubuntu nécessite une génération uniquement locale, sans accès au net et reproductible. Hors Maven va télécharger/mettre à jour ses libs depuis Internet. D'où ce repository, que vous pouvez donc vous aussi utiliser en tant que miroir local !! :-)
Maj 30/11/2010 : J'ai oublié de préciser que ce miroir n'est disponible qu'en lecture seule aux utilisateurs normaux du système.
Commentaires
Maven récupère ses libs depuis le net uniquement si elles ne sont pas présentent sur le répository local, donc la première fois, puisqu'une fois qu'il les a récupéré sur le net, il les installe en local.
Perso, j'utilise systématiquement maven sur les projets java que je fais. Ça a plein d'avantage, comme celui que le projet peut être compilé par n'importe qui sans avoir besoin de mettre les libs sur le svn. Je ne peux plus me passer de maven pour mes projets ^_^