本地依赖关系由SBT解决而不是Play!骨架 [英] Local dependencies resolved by SBT but not by Play! Framework
问题描述
publish-local
)从Play!框架项目,但是当从Play的控制台运行 compile
时,从SBT的控制台使用 compile
时,所需的库未解决一切顺利。 我发现这个行为很奇怪,因为Play使用SBT来解决依赖关系。顺便说一下,我在我的Play项目中使用了0.12T版本的SBT。
使用Play编译时遇到的错误是非常基本的: / p>
[warn]模块未找到:org.w3#banana_2.10; 2013_02_21-SNAPSHOT
[warn] == == local:试过
[warn] /home_local/.installedSoftware/play-2.1.1/repository/local/org.w3/banana_2.10/2013_02_21-SNAPSHOT/ivys/ivy.xml
[警告] ==== Typesafe Releases存储库:尝试
[警告] 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快照存储库:尝试
[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快照:试过
[警告] http://repo.akka.io/snapshots/org/w3/banana_2 .10 / 2013_02_21-SNAPSHOT / banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ==== OSS117:试过
[warn] http://oss.s onatype.org/content/repositories/snapshots/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ====本地Maven存储库:尝试
[warn] file:///home_local/.m2/repository/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
[warn] ====本地SBT存储库:尝试
[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:试过
[警告] http://repo1.maven.org/maven2/org/w3/banana_2.10/2013_02_21-SNAPSHOT/banana_2.10-2013_02_21-SNAPSHOT.pom
任何人都可以解释这里发生了什么?谢谢你提前。
问题是SBT的 publish-local
将您的库发布到〜/ .ivy2 / local
,而Play似乎有他的ivy2本地存储库指针到他自己的安装文件夹的ivy2存储库(您的 /home_local/.installedSoftware/play-2.1.1/repository/local
)。
您可以将此解析器添加到您的Play的 Build.scala
:
resolvers + = Resolver.file(本地repo,文件(System.getProperty(user.home)+/.ivy2/local\"))(Resolver.ivyStylePatterns)
I'm trying to use banana-RDF, a locally published library (published using SBT's publish-local
) from a Play! Framework project, but when running compile
from Play's console, the wanted library is not resolved, when using compile
from SBT's console everything goes fine.
I find this behavior pretty weird as Play uses SBT to resolve dependencies. By the way, I'm using the 0.12.3 version of SBT in my Play project.
The error I'm getting when compiling with Play is pretty basic:
[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
Can anyone explain what is happening here? Thank you in advance.
The problem is that SBT's publish-local
publishes your library to ~/.ivy2/local
, whereas Play seems to have his ivy2 local repository pointer to the ivy2 repository of his own installation folder (your /home_local/.installedSoftware/play-2.1.1/repository/local
).
You can add for example this resolver to your Play's Build.scala
:
resolvers += Resolver.file("Local repo", file(System.getProperty("user.home") + "/.ivy2/local"))(Resolver.ivyStylePatterns)
这篇关于本地依赖关系由SBT解决而不是Play!骨架的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!