2012-08-25 65 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