本地依赖关系由SBT解决,但不是由Play解决!骨架

Pet*_*ter 7 dependencies scala sbt playframework-2.1

我正在尝试使用banana-RDF,一个本地出版的图书馆(使用SBT发布publish-local)来自Play!框架项目,但是当compile从Play的控制台运行时,想要的库没有被解析,当compile从SBT的控制台使用时,一切都很顺利.

我发现这种行为非常奇怪,因为Play使用SBT来解决依赖关系.顺便说一下,我在我的Play项目中使用了0.12.3版本的SBT.

我在使用Play编译时遇到的错误非常基本:

[warn]  module not found: org.w3#banana_2.10;2013_02_21-SNAPSHOT            
[warn] ==== local: tried
[warn]   /home_local/.installedSoftware/play-2.1.1/repository/local/org.w3/banana_2.10/2013_02_21-SNAPSHOT/ivys/ivy.xml
[warn] ==== Typesafe Releases Repository: tried
[warn]   http://repo.typesafe.com/typesafe/releases/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== Typesafe Snapshots Repository: tried
[warn]   http://repo.typesafe.com/typesafe/snapshots/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== Akka Snapshots: tried
[warn]   http://repo.akka.io/snapshots/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== OSS117: tried
[warn]   http://oss.sonatype.org/content/repositories/snapshots/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== Local Maven Repository: tried
[warn]   file:///home_local/.m2/repository/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== Local SBT Repository: tried
[warn]   file:///home_local/.ivy2/local/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这里发生了什么?先感谢您.

ata*_*ino 23

问题是SBT将publish-local你的库发布到~/.ivy2/local,而Play似乎有他的ivy2本地存储库指针指向他自己的安装文件夹(你的/home_local/.installedSoftware/play-2.1.1/repository/local)的ivy2存储库.

您可以将此解析器添加到Play的Build.scala:

resolvers += Resolver.file("Local repo", file(System.getProperty("user.home") + "/.ivy2/local"))(Resolver.ivyStylePatterns)
Run Code Online (Sandbox Code Playgroud)