21 votes

Est-il possible d'accélérer le téléchargement des artefacts maven ?

Malheureusement, la construction initiale de maven est très lente à cause du téléchargement des artefacts.
Par exemple, j'ai essayé de télécharger le même bocal en utilisant curl - c'est 3 fois plus rapide !!!
Pourquoi ? Et comment je peux l'accélérer ? Peut-être que maven a des clés de configuration liées à la vitesse de téléchargement des artefacts ?

Merci.

18voto

mushipao Points 163

Je sais que c'est une vieille question, mais je suis tombé ici depuis Google. J'avais déjà un proxy en place, j'avais juste besoin d'accélérer les téléchargements simultanés. Vous pouvez utiliser l'option mvn :

-Dmaven.artifact.threads=30

Source : https://maven.apache.org/guides/mini/guide-configuring-maven.html

Configuring Parallel Artifact Resolution
By default, Maven 2.1.0+ will download up to 5 artifacts (from different groups) at once. To change the size of the thread pool, start Maven using -Dmaven.artifact.threads. For example, to only download single artifacts at a time:

mvn -Dmaven.artifact.threads=1 verify
You may wish to set this option permanently, in which case you can use the MAVEN_OPTS environment variable. For example:

export MAVEN_OPTS=-Dmaven.artifact.threads=3

15voto

nwinkler Points 5889

Utiliser un gestionnaire de référentiel local/miroir/proxy. Tous les téléchargements seront alors effectués dans ce dépôt plutôt que dans les dépôts publics sur Internet. Les plus populaires sont :

Ils sont assez faciles à installer et à mettre en place et offrent une grande valeur ajoutée. La plupart d'entre eux ont également des versions gratuites. Utilisez simplement une vieille boîte de développement pour commencer et passez à un vrai serveur lorsque vous voudrez élargir le champ d'application et le rendre accessible à un plus grand nombre de personnes.

4voto

Olaf Points 78

Le point clé de la question a été manqué dans les réponses ci-dessus :

J'ai essayé de télécharger le même bocal en utilisant curl - c'est 3 fois plus rapide ! !!

Cela signifie qu'il s'agit d'un problème logiciel, l'atténuation par l'installation d'un proxy local ou la modification de la politique d'instantané dans le fichier settings.xml s'accompagne d'un travail supplémentaire et d'effets secondaires potentiels, tels que des dépendances d'instantané non mises à jour.

Le problème décrit par la question est que maven n'utilise pas la bande passante disponible et est donc lent. Ce problème a été identifié dans https://issues.apache.org/jira/browse/WAGON-537 et est résolu depuis maven 3.6.1, voir https://maven.apache.org/docs/3.6.1/release-notes.html y https://issues.apache.org/jira/browse/MNG-6591 respectivement. Il n'y a donc rien d'autre à faire que de mettre à jour la dernière version de maven.

3voto

FrVaBe Points 14559

La meilleure optimisation est d'éviter le téléchargement. Jetez un coup d'œil à votre settings.xml de la configuration maven et vérifiez si le Politique de mise à jour est réglé sur "quotidien" sur libère y instantanés . Cela devrait être la valeur par défaut, mais il arrive parfois qu'elle soit définie sur 'toujours', par exemple dans les configurations du gestionnaire de référentiel.

Attention : Dans ce cas ( quotidien ) vous devez être prudent sur les changements instantanés que vous pourriez ne pas obtenir immédiatement.

Je sais que ce n'est pas une réponse directe à votre question mais la meilleure optimisation du téléchargement de maven que je connaisse.

2voto

Garbage Points 987

Vous pouvez télécharger l'artefact en utilisant curl (si vous pensez que c'est plus rapide) et l'installer dans votre dépôt maven en utilisant la commande suivante :

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

Une fois que vous l'avez installé dans le dépôt local, la prochaine fois, maven le prendra à partir de là et n'essayera pas de le télécharger à nouveau.

En outre, si le site central de dépôt maven est plus lent pour vous, veuillez envisager d'utiliser les miroirs de dépôt maven.

Guide des paramètres des miroirs - http://maven.apache.org/guides/mini/guide-mirror-settings.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X