拆分多个项目w / play! 2(斯卡拉)

时间:2012-11-10 17:54:34

标签: scala playframework-2.0 sbt

wiki上的示例似乎工作正常,但我的问题更多的是关于如何实现此结果以及如何使用Eclipsify util最终将项目(包含子项目)导入Eclipse。

https://github.com/playframework/Play20/wiki/SBTSubProjects

对这个项目进行重复数据化(在调整SBT插件版本之后)只会导致* -data项目为Eclipse做好准备。我尝试从戏剧中切换项目!提示并使其他人黯然失色,但无法改变结果。

有没有人找到了设置这类项目并将其纳入Eclipse的好方法?

是否使用'play new'创建了每个子项目?哪些文件被删除?哪个改变了? 我们怎样才能让eclipsify与多个项目一起正常工作。

我在Mac OS X上使用play 2.0.4。我正在构建Scala项目。

感谢。

====更新忽略父键======

我发了几次。我试图让它与戏剧中的例子一起工作!维基。我有这个:

import sbt._
import Keys._
import PlayProject._
import com.typesafe.sbteclipse.core.EclipsePlugin.EclipseKeys

/*
 * This contains a data project with models. It also contains a frontend web
 * app. Finally, there is a backend project. The backend project is just a copy
 * of the fronend project for demonstration purposes, but in real life may
 * contain heavy data batch processing jobs or similar. Both projects rely on
 * the same database and so must both depend on the data project which contains
 * the models. 
 */
object ApplicationBuild extends Build {

  val appName         = "example"
  val appVersion      = "1.0-SNAPSHOT"

  val dataDependencies = Seq(
  )

  val frontendDependencies = Seq(
  )

  val backendDependencies = Seq(
  )

  val dataProject = PlayProject(appName + "-data", appVersion, dataDependencies, path = file("data"), mainLang = JAVA)

  val frontend = PlayProject(appName + "-frontend", appVersion, frontendDependencies, path = file("frontend"), mainLang = JAVA).dependsOn(dataProject).aggregate(dataProject)

  val backend = PlayProject(appName + "-backend", appVersion, backendDependencies, path = file("backend"), mainLang = JAVA).dependsOn(dataProject).aggregate(dataProject)

  val main = PlayProject(appName) dependsOn(frontend,backend) aggregate (frontend,backend)

  override def settings = super.settings ++ Seq(EclipseKeys.skipParent in ThisBuild := false)
}

它不会编译。你在某个地方有一个干净的例子,或者你能看到我的错误吗?感谢您的快速回复

1 个答案:

答案 0 :(得分:1)

您可以将以下命令添加到顶级项目的build.sbtproject/Build.scala,让sbt也为子项目生成项目文件。

EclipseKeys.skipParents in ThisBuild := false 

或者您可以直接从播放控制台运行以下命令:

eclipsify skip-parents=false

然后,您可以在Eclipse上单独导入子项目。

在你的情况下,你忘记在最后一行包括'skipParents'的最后一个字母:'/ p>

++ Seq(EclipseKeys.skipParent in ThisBuild := false) 

将其更改为:

++ Seq(EclipseKeys.skipParents in ThisBuild := false)