我正在尝试从Confluent Maven Repo 中检索一些包。不幸的是,对于那里的某些文件,.sha1校验和文件不正确。我尝试通过指定来解决这个问题
update / checksums := Nil
Run Code Online (Sandbox Code Playgroud)
在build.sbt但这并不阻止SBT 1.3.0从检查校验和失败。我认为这是因为 Coursier 现在是默认下载器,而上述代码仅影响 Ivy。
在 SBT 1.3.0 以后禁用校验和检查的正确方法是什么?
我有一个SBT任务,它使用taskDyn从配置文本文件动态创建几个CPU密集型计算的任务.默认情况下,计算任务的计算并行运行,这很好,但现在我需要限制并行运行的数量(否则本机库OpenBLAS崩溃).我尝试使用Tag.CPU来强制执行此限制(此处为完整示例):
import sbt._
import Keys._
import Def.Initialize
// ...
lazy val runAllValidations = taskKey[Seq[Unit]]("Runs all standard validations")
lazy val validations = settingKey[Seq[String]]("All standard validations")
def validationTaskFor(arguments: String): Initialize[Task[Unit]] =
(runMain in Compile).toTask(s" com.test.foo.validation.RunValidation $arguments") tag(Tags.CPU)
def validationTasksFor(arguments: Seq[String]): Initialize[Task[Seq[Unit]]] = Def.taskDyn {
arguments.map(validationTaskFor).joinWith(_.join)
}
validations := {
val fromFile = IO.read(file("validation_configs.txt"))
fromFile.split("\n").map(_.trim).toList
}
runAllValidations := Def.taskDyn { validationTasksFor(validations.value) }.value
concurrentRestrictions in Global := Seq(
Tags.limit(Tags.CPU, 2)
)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法使taskDyn和Tags的组合工作,所有计算都立即启动:
Started with foo
Started with bla
Started with hoorray
Started …Run Code Online (Sandbox Code Playgroud)