我是SBT的新手,我正在考虑将我的工作迁移到IntellijIDEA。
我有一个使用eclipse创建的Java项目,现在我想将它与scala一起使用。
但是,Java项目不断变化,我不想每次都编译一个jar并放入lib文件夹。
是否有一种简单的方法来添加此依赖项?
答案 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将一起构建它。