我有这样一个sbt项目:

root
  - build.sbt
  - project(sbt)
      - Common.scala
  - commons
      - project
      - src...
  - modules
      - clients
         - project
         - src...
         - build.sbt (uses Common.scala)
      - projects
         - project
         - src...
         - build.sbt (uses Common.scala)
  - web(play)
      - build.sbt (uses Common.scala)
      - app
      - conf
      - modules
          - clients
              - app
              - conf
          - projects
              - app
              - conf

这个结构有两个问题:

  • 如果web(播放应用程序)作为root的子项目包含在内,我可以使用sbt“project web”运行它,但是web中的模块不包含在类路径中,并且路由引用这些类 .

  • 如果web(播放应用程序)不包含在根项目中并且我自己启动它我不知道如何仍然使用Common.scala在所有项目中使用中心依赖...我可以使用commons项目使用以下行,但我不知道如何在根项目中引用Common.scala,即使我将Common.scala放在common .

lazy val common = ProjectRef(uri(“../ common”),“common”)

我想知道如何处理这两种情况,或者你推荐我什么 .

谢谢