【问题标题】:Is it possible to reference a project with a different SBT version?是否可以引用具有不同 SBT 版本的项目?
【发布时间】:2011-11-04 00:34:24
【问题描述】:

我有基于 sbt 0.10 的 my project(仅用于 sbt 实验)。还有another 我想用作依赖项。它基于 sbt 0.7。

目前我正在尝试使用uri reference 将第二个它包含到我的项目项目中。但是构建失败了,可能是因为这些项目中的 sbt 版本不兼容。错误信息是:

[info] 将 1 个 Scala 源代码编译到 /home/zan/.sbt/staging/113d72bca54918c1f033/project/plugins/target/scala-2.8.1.final/classes...
[错误] /home/zan/.sbt/staging/113d72bca54918c1f033/project/plugins/Plugins.scala:1:未找到:值 sbt
[错误] 导入 sbt._
[错误] ^
[错误] /home/zan/.sbt/staging/113d72bca54918c1f033/project/plugins/Plugins.scala:3:构造函数对象的参数太多:()java.lang.Object
[错误] 类插件(信息:项目信息)扩展插件定义(信息){
[错误] ^

...等等。

我能否以某种方式引用第二个项目,以便只使用一个命令来制作和/或运行我的项目?

【问题讨论】:

    标签: scala dependencies sbt


    【解决方案1】:

    仅当两个项目都使用 SBT 0.10 时,才支持 SBT 跨项目引用。但是您可以使用发布和工件,并通过 Ivy 从下游项目中依赖它。

    在第一个项目中发出publish-local命令,将代码打包成JAR并写入~/.ivy2/local/org.abc.def/...

    在 SBT 0.10 项目中,添加此设置:

    libraryDependencies += "org.abc" %% "def" % "0.1"
    

    【讨论】:

    • 是的...我尝试了这种方法,但看起来 0.10 和 0.7 使用不同的存储库布局,因此它们看不到彼此部署的工件。这可能是另一个问题,我会复制它并很快在一个单独的主题中提问。
    猜你喜欢
    • 2016-06-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    相关资源
    最近更新 更多