SBT SFTP解析器不够努力

时间:2014-12-17 20:42:49

标签: sbt

我正在将混合构建环境转换为基于sbt的生态系统。对于这个问题,我处于一个障碍。

我已经通过sftp将库部署到远程存储库但是当我尝试将其作为依赖项加载时,我遇到了问题。

在build.sbt中我有:

resolvers += {
  val privateKeyFile = new java.io.File(sys.env("HOME") + "/.ssh/id_rsa")
  Resolver.sftp("MY REPO", "aHost", "/repoBase/") as ("aUser", privateKeyFile)
}

在互动节目中更新:

[info] Resolving com.test.it.out#myLib_2.11;1.0 ...
[warn]  module not found: com.test.it.out#myLib_2.11;1.0
[warn] ==== local: tried
[warn]   /home/bday/.ivy2/local/com.test.it.out#myLib_2.11/1.0/ivys/ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/com.test.it.out#myLib_2.11/1.0/jsshfs_2.11-1.0.pom
[warn] ==== MY REPO: tried
[info] Resolving jline#jline;2.12 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

它永远不会列出MY REPO的任何路径信息。

我尝试了多种配置解析器的方法,甚至是应该失败的用户/主机,结果也不会改变。

  

显示解析器   [info] List(SftpRepository(MY REPO,SshConnection(Some(KeyFileAuthentication(aUser,/ home / aUser / .ssh / id_rsa,None)),Some(aHost),None),Patterns(ivyPatterns = List(),artifactPatterns =列表(/ repoBase / [organization] / module(_ [sbtVersion])/ [revision] / [artifact] -revision。[ext]),isMavenCompatible = true,descriptorOptional = false,skipConsistencyCheck = false)))

我确实看到有人遇到了同样的问题,并表示在12年内从SSH切换到SFTP修复了它。我使用的是13.7

我已经走到了互联网的尽头,请稍微扩展一下。

谢谢!

2 个答案:

答案 0 :(得分:0)

我有类似的问题,它没有列出它尝试过的任何网址。我添加了我在发布时使用的Pattern,并修复了问题。另外,我已将我的解析器作为顺序中的第一个。

resolvers in ThisBuild := (Resolver.sftp("MY Repo", "example.com", 22, "sbt-repos/releases")(Patterns("[organisation]/[module](_[scalaVersion])(_[sbtVersion])/[revision]/[type]s/[artifact](-[classifier]).[ext]"))) +: resolvers.value

我正在使用0.13.9。我经常搜索这个,经过这么多试验后终于找到了。希望这会对某人有所帮助。

答案 1 :(得分:0)

val sftpRes = {
  val privateKeyFile = new java.io.File(sys.env("HOME") + "/.ssh/id_rsa")
  Resolver.sftp("REPO", "gitHost", "/path/to/data/")(Resolver.ivyStylePatterns) as ("user", privateKeyFile)
  }

publishMavenStyle := false

publishTo := Some(sftpRes)

使用SBT 1.2.4

最后,这就是我要做的工作。我尝试了Resolver.mavenStylePatterns,但是在那种情况下,SBT从未真正尝试在解析器上查找文件。

在发布和解决上使用常春藤模式对我有用。