我有以下带有两个子项目的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)
答案 0 :(得分:1)
配置看起来不错。
2种可能的问题是什么
sbt-console
中,并且在更改build.sbt
后没有重新加载控制台sbt projects
如果这没有帮助,请按照您的步骤调整问题。
答案 1 :(得分:0)
好的,答案是新手错误。
我在根目录中有一个build.sbt
,在每个子项目中都有一个build.sbt
(允许)。
一切都会很好。...直到我开始将依赖关系从一个子项目添加到另一个子项目。在这种情况下,超级build.sbt
“ dependsOn
”将被忽略,并且会发生编译错误。
请注意,保留子项目build.sbt
的主要原因仅仅是懒惰。花了半天的时间才能在根级别上将所有工作整合到一个build.sbt
中。但是,绝对值得付出努力。