簡體   English   中英

錯誤協議_版本 Java 6 與 maven 3.2.5

[英]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 版本與此無關。“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM