【问题标题】:sbt subProject: dependsOnsbt 子项目:dependsOn
【发布时间】:2019-07-28 22:23:54
【问题描述】:

我有以下 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)

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    配置看起来不错。

    2 种可能性问题可能是什么:

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

    如果这没有帮助,请根据您采取的步骤调整您的问题。

    【讨论】:

    • 这些是合理的建议,但在我的情况下并没有解决问题
    【解决方案2】:

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

    一切都会好起来的......直到我开始将依赖项从一个子项目添加到另一个子项目。在这种情况下,超级build.sbt "dependsOn" 被忽略并出现编译错误。

    旁注,保留子项目build.sbt 的主要原因只是懒惰。花了半天的时间让所有的东西都在根级别的单个build.sbt 中运行。但是,这绝对是值得的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 2018-11-28
      • 2014-04-28
      • 2013-11-18
      • 2017-06-11
      • 2016-06-03
      • 2017-02-28
      • 2018-03-13
      相关资源
      最近更新 更多