(免责声明:我是Play / SBT的新手。)
我一直试图在两个子模块上创建一个新项目,其中使用play播放Web前端(“app”模块),使用纯scala播放核心模块(“core”)。但是,我一直在尝试运行sbt时遇到问题:
[info]从/ home / rm / PlayApp / project加载项目定义
Play ebean模块已替换为外部Play ebean插件。
有关详细信息,请参见https://playframework.com/documentation/2.4.x/Migration24。
我看过迁移指南,但似乎没有太大帮助。在我看来,必须使用e!才能使用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")
最佳答案
您只需要添加Ebean作为插件并按照Play offical documentation的说明启用它即可:
依赖bean
Ebean已被拉到一个外部项目中,
使其拥有独立于Play自身生命周期的生命周期。
Ebean字节码增强功能也已被提取
从Play sbt插件中删除到自己的插件中。
迁移使用Ebean使用新的现有Play项目
外部Ebean插件从您的库中删除javaEbean依赖项
在 build.sbt 中,将以下内容添加到 project / plugins.sbt 中:
之后,为您的项目启用Ebean插件:
PlayEbean)
最后,将Ebean 映射的类配置为列表
而不是逗号分隔的字符串(仍受支持,但以前
不推荐使用):
此外,Ebean已升级到4.5.x,
引入了Play以前添加的一些功能
本身,包括Model类。因此,Play Model类
已被弃用,建议使用com.avaje.ebean.Model。
关于scala - 玩!框架和SBT-ebeans模块问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33074194/