Maven échoue dans l'environnement Java7 (alerte fatale reçue: version_protocole)

Après le 18 juin 2018, lorsque j'essaye de faire mvn clean package dans l'environnement Java7, cela échoue car il ne peut pas communiquer avec Maven Central Repository.

Environnement Java7

Par exemple, c'est l'environnement. (C'était un environnement Java7 Windows Server 2008 R2. Ancien ...)

> mvn --version

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00)
Maven home: C:\apache-maven-3.6.0\bin\..
Java version: 1.7.0_75, vendor: Oracle Corporation, runtime: C:\Program Files (x86)\xxxxxx\jdk\jre
Default locale: ja_JP, platform encoding: MS932
OS name: "windows server 2008 r2", version: "6.1", arch: "x86", family: "windows"

essayez mvn clean

Il est allé au Maven Central Repository pour obtenir le plugin maven requis maven-clean-plugin: 2.5, mais il est mort avec une erreur avec [ERROR] ... Received fatal alert: protocol_version. Je suis.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.805 s
[INFO] Finished at: 2018-12-14T11:46:23+09:00
[INFO] ------------------------------------------------------------------------
[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_version -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException

Le message Received fatal alert: protocol_version signifie ici ** "Vous avez accédé avec TLSv1.0, mais nous ne supportons que TLSv1.2" **.

Le référentiel central Maven est-il uniquement TLSv1.2?

Depuis le 2018/06/18, il semble que TLSv1.0 et TLSv1.1 aient été modifiés sans support.

Java7 est TLSv1.0?

Java7 prend en charge les protocoles de chiffrement TLSv1.0, TLSV1.1 et TLSv1.2 en standard. Bien que pris en charge, ** Java7 utilise par défaut TLSv1.0 **.

Ainsi, sauf si vous le spécifiez explicitement dans vos paramètres JVM ou dans votre code source, Java7 utilisera TLSv1.0.

Comme cela dépend des spécifications de la bibliothèque cliente http utilisée par l'application Java, on ne peut pas dire que Java7-> TLSv1.0 par défaut. Mise en garde.

Solution

La méthode la plus simple est la suivante. Ajoutez `` -Dhttps.protocols = TLSv1.2 '' aux options de démarrage de la JVM.

mvn -Dhttps.protocols=TLSv1.2 clean

Solution (Windows Black Magic)

Dans le cas de Windows, la commande mvn est un fichier batch, vous pouvez donc le réécrire directement ** (= magie noire) **.

#Le chemin de ↓ est, par exemple. Veuillez lire comme l'endroit où vous l'avez placé vous-même.
C:\apache-maven-3.6.0\bin\mvn.cmd

Il y a un endroit où la commande java est exécutée, alors ajoutez-y l'option JVM.

 "%JAVACMD%" ^
   %JVM_CONFIG_MAVEN_PROPS% ^
   %MAVEN_OPTS% ^
   %MAVEN_DEBUG_OPTS% ^
   -classpath %CLASSWORLDS_JAR% ^
   "-Dclassworlds.conf=%MAVEN_HOME%\bin\m2.conf" ^
   "-Dmaven.home=%MAVEN_HOME%" ^
   "-Dlibrary.jansi.path=%MAVEN_HOME%\lib\jansi-native" ^
   "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
+  "-Dhttps.protocols=TLSv1.2" ^
   %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%

référence

Recommended Posts

Maven échoue dans l'environnement Java7 (alerte fatale reçue: version_protocole)
Construction de l'environnement JavaFX dans Java 13
Environnement Java Spring dans vs Code
Réduisez le temps de construction de Java / Maven avec Nexus 3 dans l'environnement DevOps OpenShift (okd 3.11)
Dégradation des performances du conteneur Java dans l'environnement Menikoa
Construction de l'environnement Play Framework 2.6 (Java) avec Eclipse
Environnement de développement d'applications Java créé dans un environnement VM
Lorsqu'il y a des variables d'environnement dans les tests Java
La solution pour NetBeans 8.2 ne fonctionne pas dans l'environnement Java 9
Points bloqués dans la création d'un environnement de développement VS Code et Java
[Débutant] Installez l'outil de développement java dans l'environnement de développement cloud9.
Remplacement des variables d'environnement système par réflexion en Java