4

我正在尝试让一个游戏项目将另一个本地 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 
)

在日志中,当我执行“播放编译”时,它指出它找不到依赖项。它正在寻找我指定依赖关系的地方。

[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 的目录中查找却找不到它感到完全困惑。有没有人有这方面的经验?

4

1 回答 1

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项目的主代码依赖于你的依赖的主代码。如果你想让你的play项目的测试代码也依赖它,你可以使用“compile->test”。如果您只想看到两者的测试代码,您可以使用“test->test”。您也可以将它们链接在一起,例如:“compile->compile;test->test”。如果您想要的只是“编译->编译”,则无需明确说明。

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

于 2012-09-13T14:47:19.993 回答