本地依赖关系由SBT解决而不是Play!骨架 [英] Local dependencies resolved by SBT but not by Play! Framework

查看:121
本文介绍了本地依赖关系由SBT解决而不是Play!骨架的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用香蕉-RDF,一个本地发布的图书馆(使用SBT的 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆