我是 SBT 的新手,我正在考虑将我的工作迁移到 IntellijIDEA。
我有一个使用 eclipse 创建的 Java 项目,现在我想将它与 scala 一起使用。
但是,该 Java 项目在不断变化,我不想每次都编译一个 jar 并放入 lib 文件夹。
有没有一种简单的方法来添加这种依赖关系?
我是 SBT 的新手,我正在考虑将我的工作迁移到 IntellijIDEA。
我有一个使用 eclipse 创建的 Java 项目,现在我想将它与 scala 一起使用。
但是,该 Java 项目在不断变化,我不想每次都编译一个 jar 并放入 lib 文件夹。
有没有一种简单的方法来添加这种依赖关系?
假设您有两个项目:
1) 在/main-project
中,您已build.sbt
包含该行name := "main-project-id"
2) 在/other-project
中,您build.sbt
包含该行name := "other-project-id"
您可以通过添加文件来创建从 Main 项目到 Other 项目的依赖项/main-project/project/Build.scala
:
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 将把它全部构建在一起。