[英]Error protocol_version Java 6 with maven 3.2.5
嗨,我在 java 1.6 中遇到了 maven 錯誤。
我已經在stackoverflow和其他網站上嘗試了很多解決方案,但我不知道如何解決。
所以這是錯誤日志:
[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 uk (https://repo1.maven.org/maven2/): Received fatal alert: protocol_version -> [Help 1]
org.apache.maven.plugin.PluginResolutionException: 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
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:122)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:150)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getMojoDescriptor(DefaultMavenPluginManager.java:269)
at org.apache.maven.plugin.DefaultBuildPluginManager.getMojoDescriptor(DefaultBuildPluginManager.java:239)
at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.setupMojoExecution(DefaultLifecycleExecutionPlanCalculator.java:158)
at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.setupMojoExecutions(DefaultLifecycleExecutionPlanCalculator.java:145)
at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:122)
at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:135)
at org.apache.maven.lifecycle.internal.builder.BuilderCommon.resolveBuildPlan(BuilderCommon.java:97)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:109)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:302)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:217)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:287)
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:108)
... 25 more
我使用的是 Java 1.6 JDK 和 Maven 3.2.5(發現這是允許 Java 1.6 的最后一個版本)。
我已經嘗試在 maven settings.xml 上使用 set MAVEN_OPTS=-Dhttps.protocols=TLSv1.1,TLSv1.2
如果我使用 maven 執行“更新項目”,它可以完美運行,而且如果我嘗試連接到 maven 嘗試訪問的 URL,我可以打開它,但在 Eclipse 中它會失敗。
如果您需要更多信息,請告訴我,我會更新帖子。
謝謝指教。
您的問題的根本原因:
Maven Central 不再支持 TLSv1.1; 派對結束:TLS 1.1 將於本周五在 Maven Central 上停止使用
Java 6 不支持 TLSv1.2。
(Maven 版本與此無關。“protocol_version”錯誤來自不理解 TLSv1.2 或更高版本的 Java 6 內置 JCE 提供程序。)
您可能的解決方案是:
升級到 Java 7(或者最好還是 Java 8 或 11)。 Java 6 已停產。 你不應該使用它,你的客戶也不應該使用它。
嘗試在運行 Maven 的 Java 6 JVM 中使用第 3 方 JCE 提供程序; 有關建議,請參閱如何在 Java 6 中使用 TLS 1.2 。
將您自己的 Artifactory 或 Nexus 存儲庫設置為 Maven Central 的緩存,並配置 Maven 以使用它。
配置 Maven 以在與 Maven Central 通信時使用 HTTP(而非 HTTPS); 請參閱強制 m2e 使用 http 而不是 https 。 (但請注意,這會使您的構建過程容易受到偷偷注入木馬版本的依賴項的影響。)
手動下載所需的工件(依賴 POM 和 JAR 文件)並將其添加到本地(例如 ~/.m2)Maven 存儲庫。
請注意,升級是最好的解決方案。 對於不升級 Java 平台的人來說,生活只會變得更加困難。 您(或您的前任)應該在 2012 年升級......在 Java 6 公共更新停止之前。
對你來說可能為時已晚。 但是這個問題的另一個可能的解決方法是使用代理服務器,它可以通過 http(或一些舊的加密協議)運行。
使用過時的協議存在安全風險,因此請確保以不會暴露在 Internet 上的方式運行它。 但是如果您真的無法升級您的環境,這可能是要走的路。 有免費的應用程序可以代理數據(例如 Sonatype Nexus)。 您的應用程序將從 Nexus 獲取文件,而 Nexus 將使用最新協議從 Maven Central 讀取文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.