传递依赖项未在build.sbt中提取

时间:2019-08-05 09:50:05

标签: scala sbt

我有2个独立的项目:

  • 核心

    • api

Core包含所有依赖项,它使用sbt clean assembly publishLocal在本地编译和发布(使用sbt-assembly插件构建胖子)。然后api将core添加为build.sbt中的依赖项。

问题是-核心build.sbt中声明的依赖项似乎都没有添加到api-我遇到ClassNotFound错误,直到将每个依赖项分别添加到api

有什么办法解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

如果它是一个多模块项目,请确保api取决于内核:

lazy val api = project.in(file("./api"))
  .settings(api.settings)
  .settings(api.dependencies)
  .dependsOn(core)

有关更多信息,请参见此处:SBT Multi-Project

如果不是,您需要在api项目中进行依赖,例如:

libraryDependencies +=  "com.mycompany" % "myproject-core" % "2.0.0-SNAPSHOT"

确保路径,名称和版本正确。检查sbt publishLocal的输出。看起来应该像这样:

[info]  published myproject-core_2.12 to /Users/YOU/.ivy2/local/com/mycompany/myproject-core_2.12/2.0.0-SNAPSHOT/jars/myproject-core_2.12.jar

确保重新启动SBT,并且正确加载了api项目及其依赖项。

不是Test依赖项也不被继承。