在scala项目上播放依赖项

时间:2012-08-25 11:52:23

标签: scala dependencies playframework-2.0 sbt

我正在尝试让一个Play项目将另一个本地scala项目作为依赖项。我在我的配置文件中使用此行将本地scala项目部署到我的本地M2存储库。

publishTo := Some(Resolver.file("file",  new File(Path.userHome.absolutePath+"/.m2/repository")))

我正在尝试使用此行

在我的播放项目中加载依赖项
val appDependencies = Seq(
    "com.experimentalcork" %% "timeywimeyentities" % "0.0.2"
)

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(   
    resolvers += "Local Maven Repository" at "file://" + Path.userHome.absolutePath + "/.m2/repository",testOptions in Test := Nil 
)

在日志中,当我执行'play compile'时,它表示无法找到依赖项。它正在寻找我指定依赖关系的地方。

[warn] ==== Local Maven Repository: tried
[warn]   file://C:/Users/caelrin/.m2/repository/com/experimentalcork/timeywimeyentities_2.9.1/0.0.2/timeywimeyentities_2.9.1-0.0.2.pom

当我去检查那个目录时,我可以确认pom和jar文件在那里。我完全不知道它如何在包含pom的目​​录中查找并且找不到它。有没有人有这方面的经验?

1 个答案:

答案 0 :(得分:0)

我认为你也需要.dependsOn。

val timeywimeyentities: Project = Project([Put all of your settings here for the project just like you would a play project])

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(   
    resolvers += "Local Maven Repository" at "file://" + Path.userHome.absolutePath + "/.m2/repository",testOptions in Test := Nil 
).dependsOn(timeywimeyentities % "compile->compile")

添加“compile-> compile”会使您的Play项目的主要代码依赖于您的依赖项的主要代码。如果你想让你的游戏项目的测试代码也依赖于它,你可以使用“compile-> test”。如果您只希望两者的测试代码相互看到,则可以使用“test-> test”。您也可以将它们链接在一起,例如:“compile-> compile; test-> test”。如果您想要的只是“compile-> compile”,则无需明确说明它。

有关详细信息,请参阅https://github.com/harrah/xsbt/wiki/Getting-Started-Multi-Project