2014-06-08 20 views
2

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

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

回答

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) 
相关问题