5

wiki 上的示例似乎工作得很好,但是我的问题更多是关于如何实现这个结果以及如何使用 Eclipsify 实用程序最终将项目(w/子项目)放入 Eclipse。

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

Eclipsify-ing 这个项目(在调整 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)
}

它不会编译。你在某处有一个干净的例子,或者你能看到我有什么不正确的吗?感谢您的快速回复

4

1 回答 1

1

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

EclipseKeys.skipParents in ThisBuild := false 

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

eclipsify skip-parents=false

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

在您的情况下,您忘记在最后一行包含“skipParents”的最后一个字母“s”:

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

将其更改为:

++ Seq(EclipseKeys.skipParents in ThisBuild := false)
于 2012-11-10T17:58:58.883 回答