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.
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"
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" **.
Depuis le 2018/06/18, il semble que TLSv1.0 et TLSv1.1 aient été modifiés sans support.
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.
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
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%
Recommended Posts