sbt子项目:取决于

时间:2019-03-07 05:50:58

标签: scala sbt

我有以下带有两个子项目的build.sbt。一切都可以编译并正常运行。 一个是瘦的scala游戏项目。 dataextractor有很多我想在play项目中调用的util类。

但是,下面的配置仍然导致以下编译错误:

  

[错误]   /Users/foo.bar/_vws/com.corp.enablement.scripts/sirf_extract_serve/tools_sirf_server/app/corp/tools/es_result_server/service/SystemInitializer.scala:6:21:   对象数据提取不是corp.tools软件包的成员[错误]   导入corp.tools.dataextraction.providers.confluence

这是我的第一个sbt多项目。忠告将不胜感激

lazy val tools_dataextractor = (project in file("tools_dataextractor")).settings(
  Defaults.itSettings,
  libraryDependencies += scalatest % "it,test",
  name := "corp_tools_dataextractor",
  version := "0.1",
  mainClass in Compile := Some("corp.tools.ExtractionStartUp")
  )

lazy val tools_sirf_server = (project in file("tools_sirf_server")).settings(

  ).enablePlugins(PlayScala).dependsOn(tools_dataextractor)


lazy val root = (project in file("."))
    .aggregate(tools_dataextractor, tools_sirf_server)

2 个答案:

答案 0 :(得分:1)

配置看起来不错。

2种可能的问题是什么

  • 您在sbt-console中,并且在更改build.sbt后没有重新加载控制台
  • 您使用Intellij,但没有重新加载sbt projects

如果这没有帮助,请按照您的步骤调整问题。

答案 1 :(得分:0)

好的,答案是新手错误。 我在根目录中有一个build.sbt,在每个子项目中都有一个build.sbt(允许)。

一切都会很好。...直到我开始将依赖关系从一个子项目添加到另一个子项目。在这种情况下,超级build.sbtdependsOn”将被忽略,并且会发生编译错误。

请注意,保留子项目build.sbt的主要原因仅仅是懒惰。花了半天的时间才能在根级别上将所有工作整合到一个build.sbt中。但是,绝对值得付出努力。