How to reference external sbt project from another sbt project?

前端 未结 3 908
温柔的废话
温柔的废话 2020-12-02 13:04

I have the following setup of a Scala application and a common core library: root

 -> /ApplicationA
   -> /project
     -> /build.sbt
 -> /CoreLi         


        
相关标签:
3条回答
  • 2020-12-02 13:42

    You can do a source dependency on your project like that :

     lazy val core = RootProject(file("../CoreLibrary"))
    
     val main = Project(id = "application", base = file(".")).dependsOn(core) 
    

    I have a working example with a multimodule play build : https://github.com/ahoy-jon/play2MultiModule/blob/master/playapp/project/Build.scala

    But I think the proper way (it depends of your context) of doing it is to create a

     -> /project/
       -> Build.scala
     -> /ApplicationA
       -> /project
         -> /build.sbt
     -> /CoreLibrary
       -> /project
         -> /build.sbt
    

    referencing the two projects and the dependencies between them.

    0 讨论(0)
  • 2020-12-02 13:47

    With sbt 0.12.1 it seems possible to get a simple reference to a project :

    I used ProjectRef instead of RootProject

    http://www.scala-sbt.org/0.12.1/api/sbt/ProjectRef.html

    ProjectRef(file("../util-library"), "util-library")
    

    sbt-eclipse also works.

    0 讨论(0)
  • 2020-12-02 13:47

    Since sbt 0.13, you may create multi-project definitions directly in .sbt without needing a Build.scala file.

    So adding the following to ApplicationA/project/build.sbt would be sufficient.

    lazy val core = RootProject(file("../CoreLibrary"))
    
    val main = Project(id = "application", base = file(".")).dependsOn(core) 
    
    0 讨论(0)
提交回复
热议问题