(免责声明:我是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 中:

  • addSbtPlugin(“com.typesafe.sbt”%“sbt-play-ebean”%“1.0.0”)

  • 之后,为您的项目启用Ebean插件:
  • 惰性val myProject =(文件(“。”)中的项目)。enablePlugins(PlayJava,
    PlayEbean)

  • 最后,将Ebean 映射的类配置为列表
    而不是逗号分隔的字符串(仍受支持,但以前
    不推荐使用):
  • ebean.default = [“模型。*”]
  • ebean.orders = [“” models.Order“,” models.OrderItem“]

  • 此外,Ebean已升级到4.5.x,
    引入了Play以前添加的一些功能
    本身,包括Model类。因此,Play Model类
    已被弃用,建议使用com.avaje.ebean.Model。

    关于scala - 玩!框架和SBT-ebeans模块问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33074194/

    10-12 01:04