java - 在 sbt 中通过 https 访问 maven repo
问题描述
我有一个使用 sbt(scala) 进行构建的 java 项目。直到昨天,这还在工作,但今天我看到从 maven 中提取 repo 的问题
esolving org.codehaus.plexus#plexus-component-api;1.0-alpha-16 ...
[error] SERVER ERROR: HTTPS Required url=http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
[warn] module not found: org.codehaus.plexus#plexus-component-api;1.0-alpha-16
[warn] ==== typesafe-ivy-releases: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn] http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml
[warn] ==== local: tried
[warn] /root/.ivy2/local/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml
[warn] ==== activator-local: tried
[warn] file:/heimdall/app/projects/load-test/content-engine/repository/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml
[warn] ==== public: tried
[warn] http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
[warn] ==== typesafe-releases: tried
[warn] http://repo.typesafe.com/typesafe/releases/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
[warn] ==== typesafe-ivy-releasez: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml
[warn] ==== Typesafe repository: tried
[warn] http://repo.typesafe.com/typesafe/releases/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
根据我的推断,回购似乎已移至 https 端点。并且 pom 文件在 https 端点上可用。问题是这不是我项目中的直接依赖项,而是通过其他一些依赖项传递而来。如何将 https 用于此特定依赖项?
我正在使用 sbt 版本 0.13.5。我检查了它的参考手册,并在 build.sbt 中明确添加了DefaultMavenRepository
resolvers += DefaultMavenRepository
根据这个官方文档, DefaultMavenRepository 指向安全端点。在此之前,我在 build.sbt 中尝试过以下内容
resolvers += "Maven Repo" at "https://repo1.maven.org/maven2/"
并添加
"org.codehaus.plexus" % "plexus-component-api" % "1.0-alpha-16",
作为 libraryDepdency 在我的 build.sbt 中明确显示,以便它可以被缓存并且不会传递到我可能无法控制它从哪里拉出的地方。但这也失败了。我清除了 m2 和 ivy2 缓存
解决方案
创建一个 sbt 配置文件~/.sbt/repositories
并添加以下配置:
[repositories]
maven-central: https://repo1.maven.org/maven2
您可以在此处找到更多信息 - https://www.scala-sbt.org/1.x/docs/Proxy-Repositories.html
推荐阅读
- c# - 具有动态的 EF Core 或 Where 子句
- vba - 哪个循环函数更适合读取单元格并获得总数?
- ios - 无法在 IOS 14 中与 UIActivityViewController 共享视频
- sql - 根据时间戳过滤 SQL Server 行
- python - 在 sqlalchemy 中返回具有特定列的对象数组
- swift - 将 Swift 便利初始化程序公开为 Objective-C 工厂构造函数
- typescript - Stripe 客户使用 stripe CLI 创建不会导致 firebase 数据库发生变化?
- mongodb - 唯一索引会忽略不存在的字段吗?
- webrtc - 是否预计 stun/turn 服务器会出现在 webrtc 报价中?
- laravel - 如何让 laravel api 按字符串值显示