2013-05-03 108 views
7

我在build.sbt如下定义:SBT不使用基于SSH的解析器来解决依赖

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/...

回答

-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) 
} 
+0

不适用于我。与ssh相同的行为。 – scravy 2017-09-18 21:51:23

0

更新到SBT 0.13之后,我可以用我的通过添加以下行私人回购协议build.sbt

resolvers += Resolver.ssh("Company Maven Repo", "[email protected]:company/company-repo.git", "/raw/master") 

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


这是一个错误!

例如我使用github托管通过SSH访问的私有/内部maven repo。如您所期望的那样,使用Maven/POM文件时,我可以毫无困难地拖放工件。

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

== REPO_NAME: tried 

即使我指定无效的认证或给个差SSH URL它同样即没有错误报告。

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

+0

'resolvers + = Resolver.ssh(“Company Maven Repo”,“[email protected]:company/company-repo.git”,“/ raw/master”)'不适合我...您可以发布信息吗?更多细节? – mkurz 2016-01-25 15:27:30

+1

我有类似的问题;对于SSH和SFTP解析器,SBT显然不会尝试连接和检索伪像(正如Dominic所描述的那样)。但是,如果我提供'Patterns'(如[对SBT问题#1810的评论](https://github.com/sbt/sbt/issues/1810#issuecomment-160608021)所述),它会使尝试,但它只要求'ivy.xml'(但不是POM)。 – 2016-02-12 14:23:45