我有2个独立的项目:
核心
Core包含所有依赖项,它使用sbt clean assembly publishLocal
在本地编译和发布(使用sbt-assembly插件构建胖子)。然后api将core添加为build.sbt中的依赖项。
问题是-核心build.sbt中声明的依赖项似乎都没有添加到api-我遇到ClassNotFound
错误,直到将每个依赖项分别添加到api
有什么办法解决这个问题吗?
答案 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
依赖项也不被继承。