81 votes

Existe-t-il une option de ligne de commande maven pour le mode hors ligne ?

Vous pouvez spécifier dans votre maven paramètres que vous souhaitez exécuter en mode hors ligne, mais existe-t-il une option de ligne de commande équivalente ?

J'imagine quelque chose comme par exemple

mvn install -Dmaven.offline.true

172voto

Dave Newton Points 93112

Spécifier le mode hors ligne via -o / --offline :

mvn -o install

Référence du livre Maven

0 votes

Et vous pouvez le trouver en mvn -h :)

20voto

ctrueden Points 1292

Le mode hors ligne de Maven est invoqué en utilisant mvn -o .

Toutefois, cela peut ne pas suffire, car il arrive que le projet en cours fasse référence à des artefacts qui ne sont pas encore présents dans le cache du dépôt local de Maven ( ~/.m2/repository ). La tentative de construire ce projet en mode hors ligne échouera, car les dépendances nécessaires sont manquantes et ne peuvent être téléchargées.

Il y a donc un autre objectif utile :

mvn dependency:go-offline

Il s'agit d'une excellente commande à exécuter avant de sauter dans un avion, ce qui augmentera vos chances de BUILD SUCCESS . Voir le documentation en ligne pour les détails.

19voto

khmarbaise Points 28405

Juste un simple :

mvn --offline

À l'avenir, je recommande de se référer à mvn --help .

8voto

davidh Points 107

mvn -o fonctionne dans la plupart des cas, mais dans certains cas, cela ne suffira pas. En effet, à partir de Maven 3, un artefact téléchargé à partir d'un dépôt distant/central crée un fichier _remote.repositories dans votre référentiel local avec une référence à l'endroit où la dépendance a été téléchargée.
Cela peut causer des problèmes si plus tard vous n'avez pas accès à ce dépôt distant pendant vos constructions.
Une solution de contournement qui peut fonctionner consiste à utiliser mvn -o -llr yourGoal .

Dans la documentation d'aide :

 -llr,--legacy-local-repository         Use Maven 2 Legacy Local
                                        Repository behaviour, ie no use of
                                        \_remote.repositories. Can also be
                                        activated by using
                                        -Dmaven.legacyLocalRepo=true

 -o,--offline                           Work offline

Une autre façon d'exécuter mvn de façon hors ligne est de supprimer ces _remote.repositories des métadonnées stockées dans le répertoire des dépendances téléchargées.

3voto

vickirk Points 2315

Essayez -o, ou même --help pour obtenir de l'aide sur toutes les options.

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