2012-08-25 34 views
4

我想获得一个播放项目以将另一个本地scala项目作为依赖关系。我的本地scala项目部署到我的本地M2存储库,在我的配置文件中包含这行代码。在Scala项目上播放依赖关系

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 
) 

在日志中,我做一个“玩编译”它说,它无法找到的依赖。它正在寻找我指定依赖关系的地方。

[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的目​​录中查找的,而没有找到它。有没有人有过这方面的经验?

+0

愚蠢的问题,你当地发布的项目是斯卡拉2.9.1而不是斯卡拉2.9.2吧? – Jean

回答

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项目的主代码依赖于您的依赖关系的主代码。如果你想让你的游戏项目的测试代码也依赖于它,你可以使用“编译 - >测试”。如果只希望两者的测试代码能够看到对方,则可以使用“测试 - >测试”。您也可以将它们链接在一起,例如:“编译 - >编译;测试 - >测试”。如果你想要的只是“编译 - >编译”,你不需要明确说明它。

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