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