【问题标题】:"Insecure HTTP request is unsupported" Error in Scala“不支持不安全的 HTTP 请求”Scala 中的错误
【发布时间】:2021-03-07 09:22:51
【问题描述】:

我在尝试运行 sbt run 来运行我的 Scala 代码时遇到以下错误:

insecure HTTP request is unsupported 'http://repo.typesafe.com/typesafe/releases'; switch to HTTPS or opt-in as ("typesafe-releases" at "http://repo.typesafe.com/typesafe/releases").withAllowInsecureProtocol(true), or by using allowInsecureProtocol in repositories file

这很奇怪,因为上周它工作得非常好,而我没有更改任何代码。我尝试在我的build.sbt 文件和解析器文件中添加("typesafe-releases" at "http://repo.typesafe.com/typesafe/releases").withAllowInsecureProtocol(true),安装Java11,删除我的项目文件夹,并从存储库中完全重新克隆我的代码,但没有任何效果。我正在使用 Visual Studios,但也尝试过 IntelliJ 并得到相同的错误。

任何建议都将不胜感激,因为我什么都没做,现在突然我的代码不再编译了。更多详情:

sbt.version = 1.4.0

Scala 代码运行器版本 2.12.10

我当前的 built.sbt(请注意,我之前没有添加 resolve 部分,当时我的代码工作正常。添加它是为了尝试解决问题但没有工作):

scalaVersion := "2.12.10"

name := "name"
organization := "org"
version := "1.0"

libraryDependencies ++= Seq(
"org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2",
"org.apache.spark" %% "spark-core" % "3.0.1",
"org.apache.spark" %% "spark-sql" % "3.0.1",
"org.reactivemongo" %% "reactivemongo-bson-api" % "0.20.11",
"org.mongodb.spark" %% "mongo-spark-connector" % "3.0.0",
"com.ibm.db2.jcc" % "db2jcc" % "db2jcc4"
)

resolvers += Resolver.typesafeRepo("releases")

编辑: 我发现无论项目如何都会发生此错误,甚至在我简单地自行运行 sbt 时也会发生。

【问题讨论】:

  • java升级后还有SSLHandshakeException吗?你使用什么版本的 scala/sbt?更多信息和错误详细信息会有所帮助。
  • @tentacle 感谢您的 cmets。上面列出的所有东西都没有任何区别,我仍然遇到同样的错误。在上面添加了其他版本详细信息。错误发生在:[info] loading project definition
  • @TomerShetah 问题是我从一开始就不需要解析器部分,而且我的代码编译和运行都很好。无论如何,我已经尝试并添加了解析器解析器部分:resolvers += Resolver.typesafeRepo("releases") resolvers += Resolver.typesafeIvyRepo("releases")
  • @TomerShetah 我试过了,不幸的是这不起作用。更新:我发现无论我打开哪个项目都会发生错误,并且只需使用“sbt”命令进入 SBT 环境仍然会发生错误

标签: java scala http compiler-errors sbt


【解决方案1】:

正如repo.typesafe.com 中提到的,您可以添加到您的 sbt:

Resolver.typesafeIvyRepo("releases")

或:

Resolver.typesafeRepo("releases")

取决于你是否使用Ivy

此警告的原因是您使用的是http 而不是https。来自sbt 1.4.0 release notes

HTTP 解析器需要使用 .withAllowInsecureProtocol(true) 明确选择加入

This 是添加它的 PR。

【讨论】:

  • OP 已明确表示构建中有明确的选择退出。
  • @tentacle,错误信息清楚地表明"typesafe-releases" at "http://repo.typesafe.com/typesafe/releases"build.sbt的一部分。这就是警告的原因,将其替换为Resolver.typesafeIvyRepo("releases") 即可解决。
  • @TomerShetah 感谢您的意见,但这并没有解决问题。此外,我现在收到“无法与构建服务器连接,没有任何功能将起作用。有关更多详细信息,请参阅日志。”在尝试重建 build.sbt
  • @TomerShetah 感谢您的建议。请参阅上面 SSam 的工作解决方案。
【解决方案2】:

您是否尝试删除 ~/.sbt 文件夹?我在此文件夹中有一个存储库文件,其中包含对类型安全存储库的 HTTP 引用,删除此文件夹解决了这些 sbt HTTP 错误。

【讨论】:

  • rm ~/.sbt/repositories 对我来说已经足够了。
【解决方案3】:

对于其他使用 Intellij 设置解决此问题的人,请参见下文

环境:

  • Scala 2.12.7
  • Intellij Ultimate
  • JVM 11

问题似乎是 Intellij IDE SBT 插件(仍在 1.3.2 上)和似乎是 sbt 的静默更新之间的冲突。

在终端中运行 sbt(版本 1.4.3)而不是使用内置插件解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 2011-02-14
    • 2017-11-07
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多