小编Chr*_*ler的帖子

如何在编译任务之前执行shell命令?

我想rm -r在我的sbt项目构建时执行一个shell命令 - 一个目录.这将是以前compile.

推理:有一个永远不会更新的缓存文件.如果我在每次编译之前删除它,它会强制更新.

请指教.

scala sbt

12
推荐指数
2
解决办法
3871
查看次数

从Scala中的异常返回的正确方法是什么?

在非功能语言中,我可能会这样做:

try {
  // some stuff
} catch Exception ex {
  return false;
}

// Do more stuff

return true;
Run Code Online (Sandbox Code Playgroud)

但是,在Scala中,这种模式显然不正确.如果我的scala代码如下所示:

try {
  // do some stuff
}
catch {
  case e: Exception => // I want to get out of here and return false
  )
}

// do more stuff

true
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?当然,我不想使用"返回"语句,但我也不想通过"做更多的东西"并最终返回true.

scala

7
推荐指数
1
解决办法
4616
查看次数

如何使用SBT在build.scala中使用-D变量?

我有一个build.scala文件,其依赖关系如下所示:

"com.example" % "core" % "2.0" classifier "full-unstable"
Run Code Online (Sandbox Code Playgroud)

这会使用完全不稳定的分类器来提取JAR

我需要做的是从Jenkins(构建服务器)向SBT(使用-DI presme)指定"unstable"或"stable"以更改分类器.如果变量替换像在Maven中那样工作,则依赖关系看起来像:

"com.example" % "core" % "2.0" classifier "full-${branch}"
Run Code Online (Sandbox Code Playgroud)

我会做"-Dbranch = unstable"或"-Dbranch = stable"

我很不清楚如何使用SBT和build.scala文件执行此操作.

scala sbt

6
推荐指数
1
解决办法
2131
查看次数

如何从Scala字符串转换为Java枚举

我有一个API,它接收表示一种语言的字符串。我的Scala代码(将Scalatra用于API)调用了我必须支持的现有Java代码。该Java代码期望该语言采用其定义的枚举形式。

我可以对字符串进行详尽的模式匹配以返回正确的枚举元素,但是我必须相信还有更好的方法吗?

例如,我可以这样做:

      f.language.value.get.toUpperCase.split(",").map {
        case "ALL" => JavaLanguageEnum.ALL
        case "AAA" => JavaLanguageEnum.AAA
        case "BBB" => JavaLanguageEnum.BBB
        case "CCC" => JavaLanguageEnum.CCC
        case "DDD" => JavaLanguageEnum.DDD
        case "EEE" => JavaLanguageEnum.EEE
        case "FFF" => JavaLanguageEnum.FFF
        case _ => JavaLanguageEnum.ALL
      }.toList
Run Code Online (Sandbox Code Playgroud)

...但是那将是完成这项工作的一大段代码。是否有更好的方法简单地说:“如果字符串与枚举之一匹配,则返回该枚举以便我可以将其传递给它?”

java enums scala

0
推荐指数
1
解决办法
592
查看次数

标签 统计

scala ×4

sbt ×2

enums ×1

java ×1