juil.
2011
En entreprise, il est fréquent de travailler sur des postes sous Windows, configurés avec des profils itinérants, c'est-à-dire synchronisés avec un serveur central de manière à pouvoir être accédés depuis n'importe quel autre poste.
Par défaut, tout le répertoire utilisateur est ainsi sauvegardé (C:\Documents and Settings\<user>
), et redescendu localement lors de l'ouverture d'une session. ll est donc important de limiter sa taille au strict minimum, sous peine de subir des temps de connexion importants (quoique cela donne un bon prétexte pour aller prendre un café matinal ou draguer les filles de la compta).
Problème : de nombreux outils stockent leurs données dans ce répertoire par défaut, données qui peuvent être très volumineuses - et en particulier Maven et IntelliJ.
Je vous propose donc de rassembler ici une liste des configurations à effectuer sur différents outils ou programmes, afin qu'ils placent leurs données dans d'autres répertoires. Je vous invite à m'aider à la compléter !
Dans un souci d'homogénéité, on désignera le nouveau répertoire à utiliser comme ceci : <configdir>
.
Maven 2 / Maven 3
Selon le proverbe, "Maven télécharge Internet" dans son repository local (<USER_HOME>/.m2/repository
par défaut).
Dans le fichier de configuration <MAVEN_HOME>/conf/settings.xml
, il suffit de décommenter la balise suivante :
<localRepository><configdir>/.m2/repository</localRepository>
Vous pouvez déplacer l'ancien repository vers son nouveau répertoire, ou laisser Maven tout retélécharger au prochain lancement.
IntelliJ
J'ai été très surpris de la taille du répertoire de configuration d'IntelliJ. En réalité, il y stocke tous ses caches, indexes et données temporaires, qui peuvent rapidement prendre une place importante, en fonction de la taille de vos projets et des librairies utilisées.
Dans le fichier <INTELLIJ_HOME>/bin/idea.properties
, configurez la variable suivante :
idea.config.path=<configdir>/.IntelliJIdea10/config
IntelliJ reconstruira ses caches et indices au prochain lancement.
NetBeans
Netbeans a le même problème qu'IntelliJ : il stocke les index Maven dans <USER_HOME>/.netbeans/7.0
par défaut.
Pour modifier cette valeur, il faut modifier dans le ficher <NETBEANS_HOME>/etc/netbeans.conf
la ligne suivante :
# ${HOME} will be replaced by JVM user.home system property netbeans_default_userdir="<configdir>/.netbeans/7.0"
(Merci Florian !)
Grails
Pour déplacer le répertoire de travails de Grails (<USER_HOME>/.grails par défaut), il y a 2 possibilités :
- utiliser la variable d'environnement
GRAILS_OPTS
et lui ajouter-Dgrails.work.dir=<configdir>/.grails
- ajouter un fichier
settings.groovy
dans<USER_HOME>/.grails
avec le contenu suivant :
grails.work.dir="<configdir>/grailswork"
(Merci Jean-Philippe !)
Ivy
D'après la documentation, il suffit de redéfinir la propriété ivy.default.ivy.user.dir
.
Pour cela, il existe plusieurs méthodes :
- Si Ivy est utilisé depuis Ant, redéfinir cette propriété comme ceci :
<property name="ivy.default.ivy.user.dir" value="<configdir>/.ivy2"/>
- Définir une variable d'environnement (utile quand Ivy est appelé depuis un shell / commande DOS)
- Créer un fichier de settings pour Ivy appelé ivysettings.xml, et y définir la propriété :
<ivysettings> <property name="ivy.default.ivy.user.dir" value="<configdir>/.ivy2"/> <ivysettings>
Commentaires
Netbeans a le même problème qu'IntelliJ : il stocke les index maven dans $HOME/.netbeans/7.0 par défaut. Pour modifier cette valeur, il faut modifier dans le ficher <NETBEANS_HOME>/etc/netbeans.conf la ligne :
# ${HOME} will be replaced by JVM user.home system property
netbeans_default_userdir="${HOME}/.netbeans/7.0"
Ca, c'est de la vraie bonne idée !
Petit complément : j'ai eu le même soucis à cause de Grails.
Pour déplacer le répertoire de travails de Grails (<USER_HOME>.grails par défaut), il y a 2 possibilités :
- utiliser la variable d'environnement GRAILS_OPTS et lui ajouter -Dgrails.work.dir=<configdir>/.grails
- ajouter un fichier settings.groovy dans <USER_HOME>/.grails avec le contenu suivant :
N'oubliez pas de vérifier que le répertoire existe bien.
Il me semble qu'on peut déplacer le répertoire de travail d'Ivy (<USER_HOME>/.ivy par défaut), mais je n'ai pas la solution sous la main.
Pour Eclipse, de souvenir on peut jouer avec les options '-user', '-configuration' et '-data' dans le eclipse.ini
Eclipse ne stocke rien dans le répertoire utilisateur il me semble, mais plutôt dans le Workspace non ?
Il y a pourtant bien un <USER_HOME>/.eclipse qui est créé et contient des choses (en tout cas moi j'en ai un).
J'avoue que j'ai jamais très bien compris (ni cherché à comprendre) où Eclipse stockait quoi, mais en effet la majeure partie est dans le Workspace.
Pour ma part, j'ai toujours modifié le fichier idea.properties immédiatement après installation (et avant premier démarrage) avec les valeurs suivantes (à écrire tel quel) :
idea.config.path=${idea.home}/config
idea.system.path=${idea.home}/system
idea.plugins.path=${idea.home}/config/plugins
Attention, d'ailleurs : ne spécifier une valeur différente que pour idea.config.path ne change pas le problème. En fait, s'il y en a un à changer, c'est idea.system.path : c'est là qu'IntelliJ IDEA stocke ses énormes caches.