2013-08-01 42 views
2

我对Java/Scala/Play/Eclipse完全不熟悉。到目前为止,我的经验主要是使用C#和Visual Studio。如何将依赖关系添加到第二个项目中的Eclipse中的Play框架项目?

我想知道如何在Eclipse中将Scala项目的依赖添加到我的Play项目中。在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播放项目内的空blogPlatform目录,而不是指我现有的blogPlatform项目。我对sbt也不熟悉,所以我可能完全滥用这个工具。

我也尝试通过Eclipse添加blogPlatform项目作为依赖项,它工作 - 直到我从终端运行“play eclipse”。这消除了我在IDE中所做的任何更改。

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

任何建议或指向工具或资源将不胜感激!

+0

我认为这将意味着设置一个自定义多项目sbt构建。我一直在阅读关于多项目构建的sbt文档,并发现这个问题(http://stackoverflow.com/questions/9954272/play-framework-as-sbt-non-root-module),但我仍然不太满意掌握了sbt以及如何在Play中使用它... –

回答

1

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

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

相关问题