Scala sbt:从build.sbt交叉发布
目前,我正在使用SBT脚本插件进行测试。要将插件发布到本地存储库中,请使用build.sbt中的以下代码段:Scala sbt:从build.sbt交叉发布,scala,sbt,Scala,Sbt,目前,我正在使用SBT脚本插件进行测试。要将插件发布到本地存储库中,请使用build.sbt中的以下代码段: crossScalaVersions := Seq(scalaVersion.value,"2.11.7") scriptedDependencies := { val local = publishLocal.value } 通过这种方式,人工制品将发布到本地存储库中,但仅针对版本scalaVersion.value。我想为两个scala版本交叉发布它。我该怎么做?正如
crossScalaVersions := Seq(scalaVersion.value,"2.11.7")
scriptedDependencies := {
val local = publishLocal.value
}
通过这种方式,人工制品将发布到本地存储库中,但仅针对版本
scalaVersion.value
。我想为两个scala版本交叉发布它。我该怎么做?正如@srjd在评论中提到的,您可以使用+
前缀
如本文所述
要针对CrossScalarVersions中列出的所有版本进行构建,请在要使用+运行的操作之前加上前缀。例如:
使用此功能的典型方法是在单个Scala版本(无+前缀)上进行开发,然后偶尔在发布时交叉构建(使用+)
这适用于任何操作,包括publisLocal
> + publishLocal
您是否将
+publishLocal
与+
一起使用?应该这样做。此外,我建议不要在交叉尺度厌恶
的定义中提及尺度厌恶
。那是自找麻烦。明确写下“2.10.6”
或您想要的内容。感谢您的回复。但问题是build.sbt,而不是命令行。有一个TaskKey publishLocal
,+
由sbt解释器提供。例如,您可以通过在sbt控制台中键入help+
进行检查scriptedDependencies
不是这样使用的sbt
可以交互调用,也可以通过命令行上的一个或多个命令调用。这就是你要写+publishLocal
的地方。例如,$sbt+publishLocal
我认为这是一个有效的问题。无论问题的作者为什么想这样做,答案都是有用的。我不买sbt
“意味着以交互方式调用”参数,因为它还为您提供了编写自己任务的API和方法。在您自己的自定义任务中,您可能需要以编程方式交叉发布一些模块。我现在非常需要,谢谢你的回复。如前所述,问题在于build.sbt,而不是命令行。有一个TaskKey publishLocal,并且+由sbt解释器提供。例如,您可以在sbt控制台中键入help+进行检查
> + publishLocal