Installation Maven Ubuntu

De EjnTricks

L'installation deMaven sur une machine Ubuntu s'effectue en copiant simplement les binaires et après quelques configurations des variables d'environnement. Son utilisation est nécessaire dans le cadre d'une mise en palce d'un serveur d'intégration continue.

Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


System-Install-icon.png Installation

Le contenu du tar apache-maven-2.2.1-bin.tar.gz est placé dans le répertoire /var/opt.

#sudo tar -C /var/opt -xzvf apache-maven-2.2.1-bin.tar.gz 

Afin de faciliter les montées de versions, un lien est mis en place à l'emplacement /var/opt/maen. Ainsi les outils sont configurés sur cet emplacement, et une montée de version nécessitera uniquement la modification du lien.

#sudo ln -s /var/opt/apache-maven-2.2.1 /var/opt/maven


Icon-database.png Création repository

Maven utilise un "repository" sur le poste pour stocker les librairies déjà téléchargées. Par défaut, cela se place dans un répertoire .m2 dans le home de l'utilisateur. Afin de partager ce repository avec les différents comptes, il faut modifier la configuration. Le repository sera placé dans le répertoire /usr/share/maven/repository

#sudo mkdir -p /usr/share/maven/repository

Dans le cadre de cette installation, le repository étant utilisé par des outils déployés sous Tomcat, les sécurités sont modifiées ainsi:

#sudo chown -R root:tomcat6 /usr/share/maven
#sudo chmod -R 775 /usr/share/maven/repository

Attention, lors des mises à jour de Tomcat, il peut être nécessaire de modifier les permissions sur ce répertoire, pour affecter les droits au nouveau compte utilisé pour Tomcat.


Configuration-icon.png Configuration

La configuration de l'instance s'effectue en modifiant le fichier settings.xml global ou spécifique à l'utilisateur, comme explicité dans l'article de configuration.

L'emplacement de ce repository doit etre configuré au niveau de Maven dans le fichier settings.xml. Ce fichier se trouve dans le sous répertoire conf du répertoire d'installation, à savoir /var/opt/apache-maven-2.2.1/conf de le cadre de cette installation. Pour cela, il faut ajouter un noeud localRepository comme l'indique l'exemple:

  <localRepository>/usr/share/maven/repository</localRepository>
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

Afin d'utiliser le serveur Nexus mis en place, il faut ajouter un mirroir dans le fichier de configuration. Par défaut, toutes les demandes passeront par ce serveur. Au niveau du noeud mirrors, une configuration est ajoutée ainsi, comme décrit sur le site de Nexus :

Dans le cadre de cet exemple, Nexus est hébergé sur la machine 192.168.1.5 derrière un serveur Apache. Il faut configurer :

  • Un nouveau mirroir qui servira toutes les demandes;
  • Un profile avec une URL quelconque qui sera surchargée par le mirroir;
  • Activation du profile.

Ainsi toutes les demandes seront dirigés vers le serveur Nexus.

  <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <name>Local nexus.</name>
      <url>http://192.168.1.5/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>nexus</id>
      <!-- Enable snapshots for the built in central repo to direct -->
      <!-- all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

  <activeProfiles>
    <!-- make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>


Update icon.png Update

La première installation a été réalisé sans prendre en compte les contraintes de mises à jour. Lors de la première mise à jour, une organisation des instances est mise en place afin de faciliter ceci.

L'objectif est de déployer les instances sous /var/opt/apache-maven et d'y placer les versions dans un sous répertoire avec le numéro de version.

#sudo mkdir -p /var/opt/apache-maven

Des fichiers communs seront placés dans un répertoire externalisé, permettant de ne pas perdre les configurations mises en place. Cette externalisation va refléter l'arborescence des instances.

#sudo mkdir -p /var/opt/apache-maven/common/conf

Le fichier settings.xml sera alors placé dans ce répertoire.

Version 3.3.3

La mise à jour est aussi simple que l'installation. Il suffit de télécharger la version et de la déployer sur la machine. L'URL de la distribution peut variée en fonction du mirroir choisi.

#sudo wget -P /var/opt/apache-maven http://apache.crihan.fr/dist/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz
#sudo tar -C /var/opt/apache-maven -xzvf /var/opt/apache-maven/apache-maven-3.3.3-bin.tar.gz
#sudo mv /var/opt/apache-maven/apache-maven-3.3.3 /var/opt/apache-maven/3.3.3
#sudo rm /var/opt/apache-maven/apache-maven-3.3.3-bin.tar.gz

Etant la première mise à jour, les fichiers de configurations sont placés dans le répertoire commun.

#sudo mv /var/opt/apache-maven/3.3.3/conf /var/opt/apache-maven/common/conf

Attention, il faut reprendre les éléments de configuration pour le serveur Nexus mis en place dans la précédente version, dans le fichier settings.xml. Du fait de l'implémentation mise en place, l'emplacement du dépôt local ne nécessite pas de nouvelle configuration.

Le répertoire de configuration de la version est lié au répertoire commun.

#sudo rm -rf /var/opt/apache-maven/3.3.3/conf
#sudo ln -s /var/opt/apache-maven/common/conf /var/opt/apache-maven/3.3.3/conf

Enfin, il suffit de mettre à jour le lien /var/opt/maven, pour pointer sur cette nouvelle version.

#sudo rm /var/opt/maven
#sudo ln -s /var/opt/apache-maven/3.3.3 /var/opt/maven

Version 3.3.9

La mise à jour est aussi simple que l'installation. Il suffit de télécharger la version et de la déployer sur la machine. L'URL de la distribution peut variée en fonction du mirroir choisi.

#sudo wget -P /var/opt/apache-maven http://apache.crihan.fr/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
#sudo tar -C /var/opt/apache-maven -xzvf /var/opt/apache-maven-3.3.9-bin.tar.gz
#sudo mv /var/opt/apache-maven/apache-maven-3.3.9 /var/opt/apache-maven/3.3.9
#sudo rm /var/opt/apache-maven/apache-maven-3.3.9-bin.tar.gz

Pour cette version, des fichiers complémentaires sont mis à disosition, et sont placés dans le répertoire commun. Attention, il faut reprendre la configuration mise en place pour le serveur Nexus mis en place dans la précédente version, dans le fichier settings.xml. Du fait de l'implémentation mise en place, l'emplacement du dépôt local ne nécessite pas de nouvelle configuration.

Le répertoire de configuration de la version est lié au répertoire commun.

#sudo rm -rf /var/opt/apache-maven/3.3.9/conf
#sudo ln -s /var/opt/apache-maven/common/conf /var/opt/apache-maven/3.3.9/conf


Enfin, il suffit de mettre à jour le lien /var/opt/maven, pour pointer sur cette nouvelle version.

#sudo rm /var/opt/maven
#sudo ln -s /var/opt/apache-maven/3.3.9 /var/opt/maven


User-icon.png Compte Tomcat

Le serveur Tomcat est lancé avec le compte tomcatX avec un home utilisateur positionné sur /usr/share/tomcatX, où X dépend de la version du serveur. Les produits utilisant Maven vérifie l'existence du répertoire .m2 dans ce dernier. Pour éviter la duplication, un lien symbolique est créé.

#sudo mkdir /usr/share/tomcatX/.m2
#ln -s /var/opt/apache-maven-2.2.1/conf/settings.xml /usr/share/tomcatX/.m2/settings.xml

A chaque mise à jour de Tomcat, il sera nécessaire d'effectuer ces opérations.