为什么 运行 ZIO App with mill 不工作?

Why does running the ZIO App with mill not work?

我从 zio.dev.

安装了简单的 ZIO 应用程序
val myAppLogic =
    for {
      _    <- putStrLn("Hello! What is your name?")
      name <- getStrLn
      _    <- putStrLn(s"Hello, ${name}, welcome to ZIO!")
    } yield ()

当 运行 in/with Intellij 它按预期工作。

然而 运行 它与 mill 它没有。

nbszmbp012:zio-scala-camunda-bot mpa$ mill server.run
[27/37] server.compile 
[info] Compiling 1 Scala source to /Users/mpa/dev/Github/pme123/zio-scala-camunda-bot/out/server/compile/dest/classes ...
[info] Done compiling.
[37/37] server.run 
Hello! What is your name?
Peter

name <- getStrLn未执行。

这是build.sc

import mill._, scalalib._

object server extends ScalaModule {
  def scalaVersion = "2.12.8"
  def ivyDeps = Agg(
    ivy"dev.zio::zio:1.0.0-RC10-1",
    ivy"com.bot4s::telegram-core:4.3.0-RC1"
  )
}

我是不是漏掉了什么?

Mill 运行s,默认情况下,在客户端-服务器模式下。结果之一是构建任务无法使用输入流。

您给出的示例需要从流程标准输入中读取。因此,您必须在交互模式下使用 --interactive(或简称 -i)明确告诉 mill 运行。

$ mill -i server.run
[27/37] server.compile 
[info] Compiling 1 Scala source to /tmp/zio-q/out/server/compile/dest/classes ...
[info] Done compiling.
[37/37] server.run 
Hello! What is your name?
Peter
Hello, Peter, welcome to ZIO!

当使用额外的 -i(在任务名称之前)调用时,ZIO 应用程序正确地从 STDIN 读取并打印问候语。