小编Nig*_*ape的帖子

如何使用新的 cousier 集成在 SBT 中禁用校验和检查

我正在尝试从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 以后禁用校验和检查的正确方法是什么?

scala sbt

5
推荐指数
1
解决办法
1218
查看次数

在SBT中组合taskDyn和Tags

我有一个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)

scala sbt

2
推荐指数
1
解决办法
431
查看次数

标签 统计

sbt ×2

scala ×2