我正在尝试让一个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的目录中查找并且找不到它。有没有人有这方面的经验?
答案 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。