将Java未完成项目添加到SBT依赖项

时间:2012-04-09 18:25:34

标签: java scala dependencies sbt

我是SBT的新手,我正在考虑将我的工作迁移到IntellijIDEA。

我有一个使用eclipse创建的Java项目,现在我想将它与scala一起使用。

但是,Java项目不断变化,我不想每次都编译一个jar并放入lib文件夹。

是否有一种简单的方法来添加此依赖项?

1 个答案:

答案 0 :(得分:4)

假设您有两个项目:

1)在/main-project中,您build.sbt包含行name := "main-project-id"

2)在/other-project中,您build.sbt包含行name := "other-project-id"

您可以通过添加文件/main-project/project/Build.scala来创建从Main项目到Other项目的依赖项:

import sbt._
import Keys._

object MainProjectBuild extends Build {
  lazy val main = Project(id = "main-project-id", base = file(".")) dependsOn(other)
  lazy val other = Project(id = "other-project-id", base = file("other-project"))
}

然后在/other-project内添加指向/main-project的链接。类似的东西:

cd /main-project
ln -s ../other-project other-project

这样您现在在名为other-project的目录中有一个/main-project/other-project/

完成此操作后,如果您运行sbt compile/main-project内的任何内容,它将按预期运行。

修改

一种不同的,也许更简单的方法就是创建一个指向java源的链接,使它们看起来像是在同一个源目录中。

因此,如果您的Scala代码位于/main-project/src/main/scala/somepackage/...且您的java代码位于/other-project/src/main/java/otherpackage/...,那么您可以执行以下操作:

cd /main-project/src/main
ln -s /other-project/src/main/java java

然后目录/main-project/src/main/java将指向依赖源,但sbt将一起构建它。