您正在寻找的解决方案是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)