2

我对 Java/Scala/Play/Eclipse 完全陌生。到目前为止,我的经验主要是使用 C# 和 Visual Studio。

我想知道如何在 Eclipse 中将 Scala 项目的依赖项添加到我的 Play 项目中,也在 Eclipse 中。在 Visual Studio 中,这是一个创建类库项目并将其添加为对另一个项目的引用的问题。IDE 管理构建过程。

我尝试在我的 Build.scala 文件中添加一个新项目:

import sbt._
import Keys._
import play.Project._

object ApplicationBuild extends Build {

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

  val appDependencies = Seq(
    // Add your project dependencies here,
    jdbc,
    anorm
  )

  //  The new project; everything else was boilerplate
  val blogPlatform = Project("blogPlatform", file("blogPlatform")).settings(
    scalaVersion := "2.10.2"
  )

  val main = play.Project(appName, appVersion, appDependencies).settings(
    // Add your own project settings here      
  )

}

这不起作用 - 它最终在我的 blogUI Play 项目中创建了一个空的 blogPlatform 目录,而不是引用我现有的 blogPlatform 项目。我也不熟悉 sbt,所以我可能完全滥用了这个工具。

我还尝试通过 Eclipse 将 blogPlatform 项目添加为依赖项,这可以正常工作 - 直到我从终端运行“play eclipse”。这会清除我在 IDE 中所做的任何更改。

理想情况下,我想要一种将 blogPlatform 作为依赖项添加到 blogUI 项目的方法,以便 Eclipse 和 Play 尊重它,并且在重新构建 blogUI 时重新构建 blogPlatform。因此,仅将预编译的 jar 文件添加到 Play 项目中的 lib 目录是不够的(我遇到的另一种方法,但我没有尝试过)。

任何有关工具或资源的建议或指示将不胜感激!

4

1 回答 1

1

如果您的两个项目紧密耦合,那么多项目构建可能最有意义。我发现来自 fortytwo的这篇博文在本地设置多项目构建时非常有用。运行时,play eclipse您应该自动以具有正确依赖关系的多个 Eclipse 项目文件结束。

如果您的项目不相关,则外部依赖项可能更有意义。从您的第一个项目中,您可以运行play publish-local将 jar 文件部署到本地 Ivy 存储库;sbt 文档解释了如何配置发布到中央存储库。从您的第二个项目中,您可以添加一个"groupId" % "artifactId" % "1.0-SNAPSHOT"指向此工件的依赖项。不幸的是,Eclipse 不能很好地使用这种配置,并且您必须在导入两个项目后手动将 jarfile 依赖项替换为项目依赖项。

于 2013-08-06T17:35:45.037 回答