使用光盘!在 ammonite 脚本中在 0.7.8 中失败,在早期版本中工作

using cd! in ammonite scripts fails in 0.7.8, worked in earlier version

在脚本中使用 cd! 使用 ammonite 0.7.0 会将您切换到该目录并执行以下代码,这很棒,因为我一直在使用 ammonite 构建和部署 scala 项目.

但是在 0.7.8 中这不再有效,它失败了...

猫TestCd.sc

import ammonite.ops._
import ammonite.ops.ImplicitWd._
cd! root/'Users/'jeff

错误:

TestCd.sc:4: not found: value cd
val res_2 = cd! root/'Users/'jeff

我可以通过更改代码以导入和实例化一个 ammonite.shell.ShellSession 使其在这个(非常)小的测试中工作,但这会导致其他问题。

我已经在 gitter 和 github 问题中询问过,因为我没有收到回复,我想我应该撒大网。

提前致谢,我不想停留在旧版本或用更成熟的脚本语言重写部署脚本,因为我正在使用 scala 做其他事情,并且觉得这对编写 shell 任何语言的脚本。

杰夫

如果这能奏效就好了。我错过的一个项目是您可以安装自定义 ~/.ammonite/predefScript.sc,这就是我解决这个问题的方法。内容与 predef.sc 相同,但没有最后一行。如果您也需要它,请随意从这个要点中获取它。

predefScript.sc - Gist

将它添加到您的系统中 mkdir -p ~/.ammonite && curl -L -o ~/.ammonite/predefScript.sc https://git.io/v1vv7