2

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

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

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

有没有一种简单的方法来添加这种依赖关系?

4

1 回答 1

4

假设您有两个项目:

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 将把它全部构建在一起。

于 2012-04-09T18:35:22.370 回答