在SBT中共享独立的Play 2项目之间的依赖关系?

时间:2014-02-14 14:11:28

标签: playframework-2.0 sbt

我正在使用Play 2开发一个网站,我遇到了一些依赖性问题。我在文档中搜索但没有发现任何相关内容。

这是我项目的结构:

  • api - 包含我的模型,服务,控制器等的Play 2应用程序
  • commons - Play 2应用程序,提供一些实用程序类,paypal集成等。

我在commons的{​​{1}}中添加了api的依赖项。在api/build.sbt中,我为PayPal添加了以下依赖项:

commons

我认为我必须仅在"com.paypal.sdk" % "rest-api-sdk" % "0.7.1" 中添加此依赖项。但是当我在commons中使用与PayPal交互的类时,我有api个错误。

ClassNotFound中向commons添加依赖项时,SBT是否应该检索commons的依赖项?

如果我在api中将依赖项添加到PayPal,一切正常,但我在两个地方都有这种依赖。

编辑Jacek问题

  • 播放2版本:2.2.0
  • api/build.sbtapi是两个独立的SBT项目(没有根项目)
  • commonsapicommons之间的依赖关系:
api/build.sbt

1 个答案:

答案 0 :(得分:0)

鉴于

  • apicommons是两个独立的SBT项目(没有根项目)”
  • api中的commonsapi/build.sbt之间的依赖关系libraryDependencies 通过api,没有常春藤范围。

然后

  • compile项目共享commons项目 + +的api依赖项。

请注意,由于您“使用与api中的PayPal交互的类,因此您对{{1}中的PayPal类具有直接依赖性项目,因此您必须将PayPal依赖项添加到项目的libraryDependencies。它们是具有自己的构建配置(和依赖项)的独立项目,并且无论其中一个的依赖性,另一个应该正确地声明它自己。