Installation Maven Ubuntu
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 place d'un serveur d'intégration continue.
Sommaire
Votre avis
Nobody voted on this yet
|
|
Initialisation
L'application va être installée sous /var/opt/apache-maven
avec une organisation qui doit permettre de faciliter les montées de version.
#sudo mkdir /var/opt/apache-maven
Installation
L'archive apache-maven-2.2.1-bin.tar.gz
est téléchargée dans le répertoire /var/opt/apache-maven
, puis est installée sous /var/opt/apache-maven
, avec modification de l'emplacement racine pour être 2.2.1
.
#sudo tar --transform 's/^apache-maven-2.2.1/2.2.1/' -C /var/opt/apache-maven -xzvf /var/opt/apache-maven/apache-maven-2.2.1-bin.tar.gz
Le fichier téléchargé peut être supprimé.
#sudo rm /var/opt/apache-maven/apache-maven-2.2.1-bin.tar.gz
Référencement version
Afin de faciliter les montées de versions, le lien /var/opt/maven
est mis en place pour référencer la version active.
#sudo ln -s /var/opt/apache-maven/2.2.1 /var/opt/maven
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
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 :
- https://support.sonatype.com/entries/20943003-Configure-Maven-to-Download-from-Nexus
- http://books.sonatype.com/nexus-book/reference/config-maven.html
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>
Fichiers communs
Un répertoire common
est mis en place pour externaliser les fichiers de configurations.
#sudo mkdir -p /var/opt/apache-maven/common/conf
Le fichier settings.xml
sera alors placé dans ce répertoire.
#sudo mv /var/opt/apache-maven/2.2.1/conf/settings.xml /var/opt/apache-maven/common/conf/ #sudo ln -s /var/opt/apache-maven/common/conf/settings.xml /var/opt/apache-maven/2.2.1/conf/settings.xml #sudo chown -h root:root /var/opt/apache-maven/2.2.1/conf/settings.xml
Update
2.2.1 → 3.3.3 | 3.3.3 → 3.3.9 | 3.3.9 → 3.5.2 | 3.5.2 → 3.5.3 |
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.
Comptes utilisateurs
Dans les précédents paragraphes, Maven
n'est utilisé que par l'utilisateur de service pour Tomcat
. Or, il peut être nécessaire d'accéder à Maven
, et surtout le dépôt, par plusieurs applications / comptes utilisateur. Il est donc recommandé de créer un groupe, par exemple maven
, avec les droits de modifications sur les fichiers nécessaires.
Création groupe
Dans le cadre de cette instance, un groupe maven
est créé.
#sudo groupadd -r maven
Ajout utilisateur
Il suffit alors d'ajouter les comptes utilisateur à ce nouveau group. Pour l'utilisation de Jenkins en service, un comtpe jenkins
a été ajouté. Il est nécessaire de l'ajouter.
#sudo usermod -a -G maven jenkins
Mise jour permissions
Si cette mise en place s'effectue sur une instance existante de Maven
, il peut être nécessaire de mettre à jour le fichiers existants. Pour cette installation, la mise à jour du dépôt s'effectue ainsi.
#sudo chown -R root:maven /usr/share/maven #sudo chown root:maven /usr/share/maven
Les permissions des fichiers peuvent être réinitialisées, dans ce cas avec un droit de modification pour le propriétaire et le groupe maven
et de lecture pour tous les autres utilisateurs.
#sudo chmod 775 /usr/share/maven #sudo find /usr/share/maven -type f -exec chmod 0664 {} \; #sudo find /usr/share/maven -type d -exec chmod 0775 {} \;
[[File:Warning-icon.png|link=)] Attention les différents programme qui vont utiliser ce dépot ne prendront pas forcément en compte les permissions spécifiées. Il est nécessaire de configurer au niveau système. Dans un premier temps, il faut s'assurer que le groupe d'accès est forcé avec la valeur maven
en fournissant l'argument g+s
à la commande chmod sur le répertoire.
#sudo chmod g+s /usr/share/maven
Dans le cas où des fichiers sont déjà existants, il est nécessaire de l'appliquer récursivement.
#sudo find /usr/share/maven -type d -exec chmod g+s {} \;
Il faut également s'assurer que le groupe est correctement positionné sur l'ensemble des fichiers.
#sudo chgrp -R maven /usr/share/maven;
Enfin, il faut spécialiser les permissions avec la commande setfacl pour les forcer sur les fichiers et répertoires créés.
#sudo setfacl -dm g::7,o::5 /usr/share/maven
Il est possible d'appliqer cette configuration récursivement, en cas de reprise, avec l'argument R
.
#sudo setfacl -Rdm g::7,o::5 /usr/share/maven