【问题标题】:read from stdin in sbt task从 sbt 任务中的标准输入读取
【发布时间】:2017-12-28 13:46:37
【问题描述】:

假设我有以下代码

object Cli extends App {
  Iterator.continually(StdIn.readLine()).takeWhile(!_.equals("quit")).foreach { command =>
    println(s"[$command RESULT] " + ApiClient.executeCommand(command))
  }
}

和自定义 sbt 命令

val cli = inputKey[Unit]("Run client")
cli := {
  "java -cp my.jar Cli".!
}

如果我从控制台运行“java -cp my.jar Cli”,它可以正常工作。但是当我调用“sbt cli”时,它会因 NullPointerException 而失败

Exception in thread "main" java.lang.NullPointerException
        at Cli$$anonfun$2.apply(Cli.scala:14)

如何定义 sbt 任务以从标准输入读取命令?

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    将此添加到build.sbt

    fork := true
    

    http://www.scala-sbt.org/1.x/docs/Forking.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-30
      • 2012-02-17
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多