【发布时间】:2016-05-18 04:05:56
【问题描述】:
目前,我正在使用 SBT 脚本插件进行测试。要将插件发布到本地存储库,请使用 build.sbt 中的以下代码 sn-p:
crossScalaVersions := Seq(scalaVersion.value,"2.11.7")
scriptedDependencies := {
val local = publishLocal.value
}
通过这种方式,工件会发布到本地存储库中,但仅适用于版本 scalaVersion.value。我想让它为两个 scala 版本交叉发布。我该怎么做?
【问题讨论】:
-
您是否使用
+publishLocal和+?那应该这样做。另外,我建议不要在crossScalaVersions的定义中引用scalaVersion。那是自找麻烦。明确写"2.10.6"或你想要的。 -
感谢您的回复。但问题是关于 build.sbt,而不是命令行。有一个
TaskKey publishLocal和+由 sbt 解释器提供。例如,您可以通过在 sbt 控制台中输入help +来检查 -
scriptedDependencies不适合这样使用。sbt意味着可以以交互方式调用,也可以通过命令行上的一个或多个命令调用。那就是你要写+publishLocal的地方。例如$ sbt +publishLocal -
我认为这是一个有效的问题。无论为什么问题的作者想要这样做,答案都会很有用。我不购买
sbt“旨在以交互方式调用”的论点,因为它还为您提供了 API 和编写您自己的任务的方法。在您自己的自定义任务中,您可能需要例如以编程方式交叉发布一些模块。我现在很需要