【问题标题】:SBT doesn't use ssh-based resolver to resolve dependencySBT 不使用基于 ssh 的解析器来解决依赖关系
【发布时间】:2023-03-22 16:28:01
【问题描述】:

我的build.sbt 中有以下定义:

libraryDependencies += "com.bubblefoundry" %% "something" % "0.1-SNAPSHOT"

resolvers += {
  val privateKeyFile = new java.io.File(sys.env("HOME") + "/.ssh/id_rsa")
  Resolver.ssh("Bubble Foundry", "bubblefoundry.com", "/usr/local/repository/") as ("peter", privateKeyFile) withPermissions("0644")
}

当 sbt 尝试解析依赖时,它失败了:

[info] Resolving com.bubblefoundry#something_2.10;0.1-SNAPSHOT ...
[warn]  module not found: com.bubblefoundry#something_2.10;0.1-SNAPSHOT
[warn] ==== local: tried
[warn]   /Users/peter/.ivy2/local/com.bubblefoundry/something_2.10/0.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== Bubble Foundry: tried
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/com.bubblefoundry/something_2.10/0.1-SNAPSHOT/something_2.10-0.1-SNAPSHOT.pom
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.bubblefoundry#something_2.10;0.1-SNAPSHOT: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

看起来它甚至没有连接到服务器来查找依赖项。这是为什么?我做错了吗?

依赖项已发布(使用相同的解析器定义)到/usr/local/repository/com/bubblefoundry/...

【问题讨论】:

    标签: sbt


    【解决方案1】:

    我找到了解决办法:从ssh切换到sftp

    resolvers += {
      val privateKeyFile = new java.io.File(sys.env("HOME") + "/.ssh/id_rsa")
      Resolver.sftp("Bubble Foundry", "bubblefoundry.com", "/usr/local/repository/") as ("peter", privateKeyFile)
    }
    

    【讨论】:

      【解决方案2】:

      更新到 sbt 0.13 后,我可以通过在 build.sbt 中添加以下行来使用我的私人仓库

      resolvers += Resolver.ssh("Company Maven Repo", "git@github.com:company/company-repo.git", "/raw/master")
      

      弹出一个对话框,询问我的 github 用户名和密码


      这是一个错误!

      例如,我使用 github 托管通过 SSH 访问的私有/内部 maven 存储库。当您使用 Maven/POM 文件时,我可以毫不费力地提取工件。

      但无法让 SBT (0.12.2) 工作。最令人沮丧的是它只是说

      == REPO_NAME: tried
      

      即使我指定了无效的身份验证或提供了错误的 ssh url,它也是如此,即没有错误报告。

      花了几个小时研究和尝试组合无济于事。因此我建议 SSH repos 不能正常工作。

      【讨论】:

      • resolvers += Resolver.ssh("Company Maven Repo", "git@github.com:company/company-repo.git", "/raw/master") 不适合我...您能发布更多详细信息吗?
      • 我也有类似的问题;对于 SSH 和 SFTP 解析器,SBT 显然没有尝试连接和检索工件(正如 Dominic 所描述的那样)。但是,如果我确实提供了Patterns(如a comment on SBT issue #1810 所述),它会尝试,但它只要求ivy.xml(而不是POM)。
      猜你喜欢
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 2016-02-13
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 2012-02-02
      相关资源
      最近更新 更多