Comment faire pour que maven utilise les paramètres du système proxy

J'utilise Ubuntu avec Gnome où je peux définir les paramètres réseau proxy (avec authentification).

La question est: comment je peux exécuter maven en ligne de commande et utiliser ce proxy?

22
demandé sur Timofey Gorshkov 2010-08-30 18:50:35

4 réponses

il y a un java.net.useSystemProxies propriété système qui peut être fixé à true (sur les plateformes Windows et Linux) pour dire à la JVM d'utiliser les paramètres proxy du système. À partir de la Java mise en Réseau et proxy guide:

Avant de voir en détails comment écrire un tel ProxySelector, parlons de la valeur par défaut. J2SE 5.0 fournit une implémentation par défaut qui renforce la compatibilité ascendante. En d'autres termes, la valeur par défaut ProxySelector vérifier les propriétés du système décrit plus haut pour déterminer le mandataire à utiliser. Cependant, il y a une nouvelle fonctionnalité optionnelle: sur les systèmes Windows récents et sur Gnome 2.plates-formes x il est possible de dire la valeur par défaut ProxySelector pour utiliser les paramètres proxy du système (les deux versions récentes de Windows et Gnome 2.x vous permet de définir proxies globalement à travers leur interface utilisateur). Si le système de la propriété java.net.useSystemProxies est réglé sur true (par défaut il est réglé sur false pour des raisons de compatibilité), puis la valeur par défaut ProxySelector essaie d'utiliser ces paramètres. Vous pouvez définir cette propriété du système sur la ligne de commande, ou vous pouvez éditer le fichier d'installation JRE lib/net.properties, de cette façon, vous avez à changer qu'une seule fois sur un système donné.

mais cela ne fonctionnera que pour les java.net.* classes, pas de commons-httpclient, jsch, etc. Donc cela ne résout pas tout le problème et Maven ne le supporte pas vraiment (ceci est enregistré comme MNG-728).

en d'autres termes, je crains que vous ne deviez configurer les paramètres du proxy votre ~/.m2/settings.xml.

18
répondu Pascal Thivent 2016-10-21 08:16:31

Avez-vous de prendre un coup d'oeil à http://maven.apache.org/guides/mini/guide-proxies.html?

Dans vos paramètres.xml:

<settings>
  .
  .
  <proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.somewhere.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
    </proxy>
  </proxies>
  .
  .
</settings>

NOTE: cela n'affecte pas le code Java! Ces paramètres de proxy sont les paramètres de proxy Maven.

24
répondu The Alchemist 2017-05-10 14:45:24

ceux qui ont besoin de définir ces paramètres par la ligne de commande peuvent utiliser ce qui suit:

MAVEN_CLI_OPTS: "-DproxySet=true -Dhttp.proxyHost=yourProxyHost -Dhttp.proxyPort=9999 -Dhttp.nonProxyHosts=mvnrepository.com"

Utilisation:

mvn $MAVEN_CLI_OPTS test

Avertissement: la propriété nonprofloxxyhosts ne fonctionnait pas correctement pour moi lorsqu'elle était utilisée dans un environnement CI. Je pense que c'est peut-être parce que les caractères pipe ne sont pas interprétés correctement dans la syntaxe YAML de Gitlab, mais je n'ai pas trouvé de solution.

Source: https://confluence.atlassian.com/jirakb/java-option-http-nonproxyhosts-does-not-work-214863640.html

4
répondu UltimaWeapon 2017-10-25 20:14:25

dans Netbeans vous devez supprimer le -Djava.net.useSystemProxies=trueTools-> option->java->Maven. Une fois que vous l'avez supprimé, Maven lit les paramètres proxy de settings.xml.

0
répondu Suraj Sheikh 2015-07-27 13:03:07