Scala 将播放应用程序作为子项目嵌入sbt
我希望将Playframework作为子项目嵌入sbt中,并能够使其依赖于其他子项目。 原因是其他子项目是要在各种容器中运行的库,一个正在运行,另一个可能是spark 我能够通过dependsOn指令使子项目相互依赖,但这不适用于包含play webapp的子项目 我现在能做的最好的事情就是让PlayWebApp依赖本地发布的工件运行,但这并不令人满意。因为我想让子项目的作者意识到一个改变会破坏webapp 如果我删除web子项目上的.enablePlugins(play.PlayScala),则依赖项将得到解决,并且一切都可以正常编译,但我不能在webapp子项目中使用play sbt插件操作,例如run。当我尝试sbt时,找不到主类 简而言之,我想编译根项目中的所有子项目,进入web子项目来编译这个级别的聚合项目,并在此子项目上使用run、universal:packageZipTarball操作 我使用的是播放2.3.10和sbt 0.13.8 谢谢你的帮助, 约汉 下面是sbt项目根目录下的Build.scala文件Scala 将播放应用程序作为子项目嵌入sbt,scala,playframework,sbt,playframework-2.3,Scala,Playframework,Sbt,Playframework 2.3,我希望将Playframework作为子项目嵌入sbt中,并能够使其依赖于其他子项目。 原因是其他子项目是要在各种容器中运行的库,一个正在运行,另一个可能是spark 我能够通过dependsOn指令使子项目相互依赖,但这不适用于包含play webapp的子项目 我现在能做的最好的事情就是让PlayWebApp依赖本地发布的工件运行,但这并不令人满意。因为我想让子项目的作者意识到一个改变会破坏webapp 如果我删除web子项目上的.enablePlugins(play.PlayScala),
import sbt._
import Keys._
object RootBuild extends Build {
lazy val root = Project(id = "root", base = file("."))
.aggregate(sub1, sub2, web)
lazy val sub1 = Project(id = "sub1", base = file("sub1"))
lazy val sub2 = Project(id = "sub2", base = file("sub2")).dependsOn(sub1)
lazy val web = Project(id = "web", base = file("web"))
.aggregate(sub1, sub2)
.dependsOn(sub1, sub2)
.enablePlugins(play.PlayScala)
resolvers += "Typesafe repo" at "http://repo.typesafe.com/typesafe/releases/"
}
然后在web文件夹中创建build.sbt文件
name := "web"
version := "0.1-SNAPSHOT"
scalaVersion := "2.10.5"
libraryDependencies ++= Seq(
ws,
"com.chuusai" %% "shapeless" % "2.2.5",
compilerPlugin("org.scalamacros" % "paradise" % "2.0.1" cross CrossVersion.full)
)