我是Java / Scala / Play / Eclipse的新手。到目前为止,我的经验主要是使用C#和Visual Studio。
我想知道如何在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 Play项目中创建一个空的blogPlatform目录,而不是引用我现有的blogPlatform项目。我也不熟悉sbt,所以我可能会完全滥用这个工具。
我还尝试通过Eclipse添加blogPlatform项目作为依赖项,这是有效的 - 直到我从终端运行“play eclipse”。这消除了我在IDE中所做的任何更改。
理想情况下,我想要一种方法将blogPlatform添加为blogUI项目的依赖项,以便Eclipse和Play尊重它,并且在重建blogUI时重建blogPlatform。因此,仅将预编译的jar文件添加到Play项目中的lib目录是不够的(我遇到的另一种方法,但我没有尝试过)。
非常感谢任何有关工具或资源的建议或指示!
答案 0 :(得分:1)
如果你的两个项目紧密耦合,那么多项目构建可能最有意义。我发现这个blog post from fortytwo在本地设置多项目构建时非常有用。运行play eclipse
时,您应该自动获得具有正确依赖关系的多个Eclipse项目文件。
如果您的项目不相关,外部化依赖项可能更有意义。从第一个项目开始,您可以运行play publish-local
将jar文件部署到本地Ivy存储库; sbt docs解释了如何配置发布到中央存储库。在第二个项目中,您可以添加指向此工件的"groupId" % "artifactId" % "1.0-SNAPSHOT"
依赖项。遗憾的是Eclipse并没有很好地使用这种配置,你必须在导入这两个项目后手动将jarfile依赖项替换为项目依赖项。