我正在跟进这个问题,因为它帮助我得到了我的#34;普通"项目得到认可,但我无法使用它。 How to reference external sbt project from another sbt project?
项目结构
/ src目录/服务/ API /项目
/ SRC / commonlib /项目
SBT加载一切正常,当我点击对象时,我试图使用它在intellij中打开并导入commonlib.conversions.SomeConversion被识别(通过Intellij并可点击到我的本地副本)。
api - sbt
lay val project = Project( id = "company", file("."), settings)
.enablePlugins(JettyPlugin)
.dependsOn(commonlib)
lazy val commonlib = RootProject(file("../../commonlib"))
commonlib也是一个带有/ src / commonlib / src / main / scala / commonlib的SBT项目
在主要项目中我导入
import commonlib.conversions.SomeConversion
...
val converted = SomeConversion.convert(x)
我收到一条错误说明: 找不到:object commonlib
commonlib.conversions的顶部看起来像
package commonlib.conversions
非常感谢任何帮助。我可能完全走错了道路并且很可能用git subrepos来解决这个问题,但我希望在多个项目中分享这个,因此(略微)组成了名称。并最终更好地了解import / sbt系统。我不希望这是一个远程jar,因为我将编辑api包。
谢谢!
答案 0 :(得分:1)
从@marios那里得到建议我使用了sbt docs,我正在努力,但他的建议和github链接迫使我进一步挖掘。
最终,commonlib项目在api项目中定义,如:
lazy val coreLib = RootProject(file("../../commonlib"))
在build.sbt的api项目定义结束时,我附上了
.dependsOn(coreLib)
这几乎就是我上面的内容和调整或两个,加上清理我的Intellij缓存非常有帮助。