玩!框架和SBT - ebeans模块的问题

时间:2015-10-12 06:00:51

标签: scala playframework sbt

(免责声明:我是一个完整的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")

1 个答案:

答案 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。