如何在IntelliJ(Scala插件)​​中添加其他Scala项目作为依赖项

时间:2014-06-08 16:13:30

标签: scala intellij-idea

我有IntelliJ Scala项目A,我需要创建另一个依赖它的Scala项目B. 从项目A创建jar文件,并使项目B依赖于jar文件可以是一个解决方案,或创建模块(而不是项目)可以是另一个。 但是,如果可能的话,我想找到一种在项目之间构建依赖关系的方法。

是否有可能使项目A依赖于IntelliJ(Scala插件)​​中的项目B而不依赖于jar文件?

1 个答案:

答案 0 :(得分:3)

您正在寻找的解决方案是SBT的多项目构建系统。您可以在一个子项目中创建所需的jar,并使其他子项目依赖于它。 IntelliJ的Scala模式非常聪明,可以理解sbt的多项目构建。只需将生成的项目作为IntelliJ中的新项目导入,您就可以了。我有一个minimal example project来证明这个概念。克隆它并玩。多项目的SBT文件是here

下面的sbt代码是顶级的build.sbt文件,应该让你知道从哪里开始。请注意,每个子项目都包含在其自己的目录中,其中包含自己的src树和根build.sbt(如果需要)。

scalaVersion in ThisBuild := "2.11.1"

scalacOptions in ThisBuild ++= Seq("-feature", "-language:postfixOps")

lazy val root = project in file(".") aggregate(lib,client,server)

lazy val lib = project in file("lib") settings(
  version := "1.0.0"
)

lazy val client = project in file("client") settings(
  version := "1.0.1",
  name := "mirv-client"
) dependsOn(lib)

lazy val server = project in file("server") settings(
  version := "1.0.2",
  name:="mirv-server"
) dependsOn(lib)