在 mill v0.9.9 Task Context API 文档中说
Mill 保留了一个长期存在的 JVM 服务器,以避免支付周期性类加载的成本。因此,在任务中运行 System.getenv 可能不会产生最新的环境变量,因为它将在服务器启动时初始化,而不是在客户端执行时初始化。为了规避这种情况,mill 的客户端在看到环境变量时将其发送到服务器,服务器通过 Ctx API 将它们作为 Map[String, String] 提供。
所以读取最新的环境变量很简单:
def envVar = T.input { T.ctx.env.get("ENV_VAR") }
但是任务如何做到这一点:“mill 的客户端将环境变量发送到服务器”以便下一个运行的任务将看到更新的环境变量?