J'ai souvent besoin de lancer la commande "mvn":
mvn -f pom.xml clean install -Dmaven.test.skip=false --settings /Users/myhome/settings.xml -X -Djavax.net.ssl.trustStore=/Users/myhome/truststore.jks -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword=dummy -Djava.protocol.handler.pkgs=com.Sun.net.ssl.internal.www.protocol -U
Comme je dois intégrer divers autres domaines, je dois actuellement ajouter chaque fois leur certificat à my truststore.jks pour éviter les erreurs de négociation SSL.
Est-il possible de configurer MVN pour ignorer les erreurs SSL?.
Vous pouvez désactiver la vérification de certificat SSL en ajoutant un ou plusieurs de ces paramètres de ligne de commande:
-Dmaven.wagon.http.ssl.insecure=true
- permet d'utiliser une vérification SSL assouplie pour les certificats générés par l'utilisateur.-Dmaven.wagon.http.ssl.allowall=true
- permet la correspondance du certificat X.509 du serveur avec le nom d'hôte. Si cette option est désactivée, un navigateur tel que check sera utilisé.-Dmaven.wagon.http.ssl.ignore.validity.dates=true
- ignore les problèmes liés aux dates de certificat.Documentation officielle: http://maven.Apache.org/wagon/wagon-providers/wagon-http/
Voici le oneliner pour un copier-coller facile:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
Ajay Gautam suggère d’ajouter ce qui précède au fichier ~/.mavenrc
afin de ne pas avoir à le spécifier à chaque fois en ligne de commande:
$ cat ~/.mavenrc
MAVEN_OPTS="-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true"
Une alternative qui a fonctionné pour moi est de dire à Maven d’utiliser http: au lieu de https: lorsqu’on utilise Maven Central en ajoutant ce qui suit à settings.xml :
<settings>
.
.
.
<mirrors>
<mirror>
<id>central-no-ssl</id>
<name>Central without ssl</name>
<url>http://repo.maven.Apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
.
.
.
</settings>
Votre kilométrage peut varier bien sûr.
Vous pouvez également configurer m2e pour utiliser HTTP au lieu de HTTPS
Créez un dossier ${USER_HOME}/.mvn
Et placez-y un fichier appelé maven.config
.
Le contenu devrait être:
-Dmaven.wagon.http.ssl.insecure=true
-Dmaven.wagon.http.ssl.allowall=true
-Dmaven.wagon.http.ssl.ignore.validity.dates=true
J'espère que cela t'aides.