【发布时间】:2023-04-10 05:58:01
【问题描述】:
我创建了一个这样的 scala play 项目
activator new foo play-event-sourcing-starter
项目生成成功,我可以进去轻松编译和运行应用程序。
但是我想要的是我应该有一个多项目 sbt 构建。我用谷歌搜索了这个https://www.playframework.com/documentation/2.5.x/SBTSubProjects
但这与我想要的不一样,因为在这里他们作为根项目发挥作用。而我想要的是我有一个带有 build.sbt 文件的空根项目,然后是多个“对等”项目。其中之一就是玩耍。
所以我把步骤改为
mkdir -p LearnPlay/project
cd LearnPlay
activator new foo play-event-sourcing-starter
现在我进入 foo 并将 build.sbt 移动到 LearnPlay 目录。我还将build.properties 和plugins.sbt 文件移动到LearnPlay/project 文件夹中。
我编辑了 build.sbt 文件,使根项目变为
lazy val root = (project in file("foo")).enablePlugins(PlayScala)
但是现在 sbt 无法编译项目,也找不到任何 play framework 依赖项。
sbt.ResolveException: unresolved dependency: com.typesafe.play#play-server_2.10;2.5.9: not found
unresolved dependency: com.typesafe.play#play-netty-server_2.10;2.5.9: not found
unresolved dependency: com.typesafe.play#play-logback_2.10;2.5.9: not found
unresolved dependency: com.typesafe.play#play-test_2.10;2.5.9: not found
unresolved dependency: com.typesafe.play#play-omnidoc_2.10;2.5.9: not found
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:313)
这些是我的 plugins.sbt 文件的内容。解析器定义正确,所以我不确定为什么在文件从子项目移动到根项目后 sbt 将无法找到依赖项。当文件位于 foo 项目的项目目录中时,它能够解决所有问题。
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.9")
// web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
【问题讨论】:
标签: scala playframework-2.0 sbt