(免责声明:我是一个完整的Play / SBT新手。) 我一直在尝试跨两个子模块创建一个新项目,使用web前端的游戏(“app”模块)和核心模块的普通scala(“核心”)。但是,我一直遇到试图运行sbt的问题:
[info]从/ home / rm / PlayApp / project加载项目定义 播放ebean模块已被外部Play ebean插件取代。 有关详细信息,请参阅https://playframework.com/documentation/2.4.x/Migration24。
我查看了迁移指南,它似乎没什么帮助。在我看来,ebeans不需要使用Play!,但sbt似乎不想在没有它的情况下运行。此外,即使我将ebeans添加为sbt插件,它仍然存在问题。
项目/ Build.scala
import org.scalajs.sbtplugin.ScalaJSPlugin
import play.sbt.PlayScala
import sbt.{Build => SbtBuild, _}
import Keys._
object BuildSettings {
val buildSettings = Defaults.coreDefaultSettings ++ Seq(
scalaVersion := "2.11.7",
version := "1.0.0",
resolvers += Resolver.sonatypeRepo("releases"),
resolvers += Resolver.url("scalajs-repo", new java.net.URL("http://mvnrepository.com/artifact/org.scala-js")),
scalacOptions ++= Seq()
)
}
object Dependencies {
val playjson = "com.typesafe.play" %% "play-json" % "2.4.3"
}
object Build extends SbtBuild {
import BuildSettings._
import Dependencies._
lazy val root = Project(id = "Application",
base = file("."),
settings = buildSettings ++ Seq(
run <<= run in Compile in core
)
).aggregate(core)
lazy val core = Project("core",
file("core"),
settings = buildSettings
)
lazy val app = Project("app",
file("app"),
settings = buildSettings ++ Seq(
libraryDependencies ++= Seq(
playjson
)
)
).enablePlugins(PlayScala, ScalaJSPlugin)
}
项目/ plugins.sbt
logLevel := Level.Warn
addSbtPlugin("com.typesafe.play" %% "sbt-plugin" % "2.4.3")
addSbtPlugin("org.scala-js" %% "sbt-scalajs" % "0.6.5")
答案 0 :(得分:1)
您只需要将Ebean添加为插件,并按照Play offical documentation说明启用它:
Ebean依赖
Ebean已退出外部项目, 允许它拥有独立于Play自身生命周期的生命周期。 还提取了Ebean字节码增强功能 将Play sbt插件放入自己的插件中。
迁移使用Ebean的现有Play项目以使用新项目 外部Ebean插件,从libraryDependencies中删除javaEbean 在 build.sbt 中,并将以下内容添加到 project / plugins.sbt :
- addSbtPlugin(“com.typesafe.sbt”%“sbt-play-ebean”%“1.0.0”)
之后,为您的项目启用Ebean插件:
- lazy val myProject =(项目在文件中(“。”))。enablePlugins(PlayJava, PlayEbean)
最后,将Ebean 映射的类配置为列表 而不是逗号分隔的字符串(仍然支持,但是 不建议使用):
ebean.default = [“models。*”]
ebean.orders = [“models.Order”,“models.OrderItem”]
此外,Ebean已升级至4.5.x, 它提供了Play之前添加的一些功能 本身,包括Model类。因此,Play Model类 已被弃用,支持使用com.avaje.ebean.Model。