问题标签 [ammonite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
513 浏览

scala - 如何在菊石壳中使用 sudo"

Scala REPL 糟糕的一件事是没有直接的方式来加载 maven/sbt 依赖项。

我发现菊石壳有一个很方便的东西load.ivy,很甜。它还有一个不错的文件系统包装器。

但是我没有找到一种方法来执行 sudo。因此,例如,如果我正在遍历目录中的文件并且我没有文件夹的权限,则命令失败

错误

有人知道如何在菊石壳中执行 sudo 吗?

0 投票
1 回答
749 浏览

scala - Ammonite 脚本 - 加载/执行相对于 root 或用户主目录的脚本

我试图尽量减少必须在菊石脚本中编写的样板数量。似乎 predef.sc 默认没有加载(这很好),但我想为不同的文件设置不同的预定义集,只需写一行来加载它们。

似乎没有办法引用/$HOME不导入ammonite-shell(这又需要您使用import $ivy/interp.load.ivy这意味着总共至少 3-4 行)。使用相对路径 ( $file.^.somefolder.somefile) 有效,但相对路径太容易中断。

因此,问题是 - 是否有一个单行来加载相对于rootor的脚本$HOME?就像是

0 投票
1 回答
380 浏览

scala - 在 IDEA 中为 Ammonite 脚本自动完成的最佳方法是什么

假设我在 Ammonite 脚本中这样做:

但我在 IDEA 中没有自动完成功能,因为它不知道我正在使用以下依赖项:

当我使用以下语法导入一些常春藤模块时,也可以这样说:

让 IDEA 知道我正在使用哪些依赖项的最佳方法是什么?

参考:

0 投票
1 回答
498 浏览

scala - 为什么在 REPL 运行相同的代码时 Ammonite 脚本会失败?

我使用这个安装了菊石: http ://www.lihaoyi.com/Ammonite/#Ammonite-Shell

~/.ammonite/predef.sc 与安装后一样。

Ammonite Repl 是 v 0.7.7,带有 Scala 2.11.8 Java 1.8.0_101

我尝试了非常简单的菊石脚本:

ammtest.sc 是

当我编译它时,我得到以下错误:

另一方面,当我将相同的代码(开头没有导入)复制/粘贴到 ammonite REPL 时:

它运行正常,没有任何错误。

1)我是否需要在脚本中导入更多内容以使其像在 REPL 中一样运行,或者它有什么问题?(我知道如果更改脚本运行正常,例如 val dir = ls!pwd )

2)“递归值目录需要类型”是什么意思?

3) predef.sc 中的单个“@”是什么意思?

0 投票
0 回答
108 浏览

sbt - 如何在有和没有菊石的情况下使用相同的初始命令

我在一个项目上工作,我想让每个开发人员都可以选择使用 ammonite。

所以我必须分享initialCommands以避免重复。

这是我目前的解决方案。

第一个问题是initCommands必须在一条线上。

有没有更好的办法 ?

0 投票
1 回答
2231 浏览

scala - 从 ammonite 脚本运行时,Spark 无法找到“spark-version-info.properties”

我有一个创建火花上下文的菊石脚本:

当我运行这个脚本时,它会抛出一个错误:

该脚本不是从 spark 安装目录运行的,也不知道它或打包此版本信息的资源 - 它只知道 ivy 依赖项。所以也许问题是这个资源信息不在常春藤依赖项的类路径上。我见过其他火花“独立脚本”,所以我希望我能在这里做同样的事情。


我摸索了一下,试图了解发生了什么。我希望我可以在运行时以编程方式将一些构建信息破解到系统属性中。

异常的来源来自spark 库中的package.scala。相关的代码位是

似乎隐含的假设是,props.load如果在资源中找不到版本信息,NPE 将失败。(这对读者来说不是很清楚!)

NPE 本身看起来像是来自以下代码java.util.Properties.java

TheLineReader是用 null 构造的InputStream,该类在内部将其解释为表示 thereader是非 null 并且应该改为使用 - 但它也是null. (这种东西真的在标准库里吗?看起来很不安全……)


bin/spark-shell火花附带的看,它会-Dscala.usejavacp=true在启动时添加spark-submit。这是正确的方向吗?

谢谢你的帮助!

0 投票
1 回答
1341 浏览

scala - 使用 ammonite repl 编写 Scala 脚本

当有一个包含以下内容的脚本文件 (file.sc) 时:

我试图执行如下:amm files.sc
我收到以下错误:

编译 file.sc :: 加载设置 :: url = jar:file:/usr/local/bin/amm!/org/apache/ivy/core/settings/ivysettings.xml :: 解决依赖关系 :: com.github.unisay #mockserver-client-scala_2.11-caller;工作配置:[默认]

:: 问题总结 :: :::: WARNINGS module not found: com.github.unisay#mockserver-client-scala_2.11;0.2.0

==== 本地:试过

/home/eli/.ivy2/local/com.github.unisay/mockserver-client-scala_2.11/0.2.0/ivys/ivy.xml

com.github.unisay#mockserver-client-scala_2.11;0.2.0!mockserver-client-scala_2.11.jar:

/home/eli/.ivy2/local/com.github.unisay/mockserver-client-scala_2.11/0.2.0/jars/mockserver-client-scala_2.11.jar

==== m2: 试过

/home/eli/.m2/repository/com/github/unisay/mockserver-client-scala_2.11/0.2.0/ivy-0.2.0.xml

com.github.unisay#mockserver-client-scala_2.11;0.2.0!mockserver-client-scala_2.11.jar:

/home/eli/.m2/repository/com/github/unisay/mockserver-client-scala_2.11/0.2.0/mockserver-client-scala_2.11-0.2.0.jar

==== 中央:试过

http://repo1.maven.org/maven2/com/github/unisay/mockserver-client-scala_2.11/0.2.0/mockserver-client-scala_2.11-0.2.0.pom

com.github.unisay#mockserver-client-scala_2.11;0.2.0!mockserver-client-scala_2.11.jar:

http://repo1.maven.org/maven2/com/github/unisay/mockserver-client-scala_2.11/0.2.0/mockserver-client-scala_2.11-0.2.0.jar

:: 使用详细或调试消息级别获取更多详细信息线程“主”ammonite.runtime.tools.IvyThing$IvyResolutionException 中的异常:无法解决常春藤依赖项未解决的依赖项:com.github.unisay#mockserver-client-scala_2.11;0.2 .0:未找到

但是,如果运行从 repl 中粘贴的相同代码副本,则一切正常。

我究竟做错了什么?

0 投票
1 回答
82 浏览

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

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

但在 0.7.8 中,这不再起作用,它像...

猫TestCd.sc

错误:

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

我在 gitter 和 github 问题上问过,我想我会撒下更广泛的网,因为我没有收到回复。

在此先感谢,我不想停留在旧版本上或用更成熟的脚本语言重写部署脚本,因为我将 scala 用于其他事情,并且觉得这对于用任何语言编写 shell 脚本都至关重要。

杰夫

0 投票
1 回答
1920 浏览

scala - 有没有办法设置 Ammonite 脚本中使用的 Scala 版本?

有没有办法设置 Ammonite 脚本中使用的 Scala 版本?

我刚刚开始使用 Ammonite,乍一看,它似乎远远优于scalas我迄今为止一直在使用的脚本运行器。但是,使用scalas,我可以轻松设置脚本中使用的 Scala 版本。例如,

我在 Ammonite 文档中找不到对任何类似声明的任何引用。

0 投票
1 回答
100 浏览

scala - 是否可以在 Scala Ammonite shell 中嵌套命令调用?

我正在尝试将典型的 UNIX 命令jmap -heap $(pgrep java)转换为Ammonite-Shell的命令。

到目前为止我的尝试:%'jmap("-heap", %'pgrep("java")).

我收到错误SyntaxError: found "%'jmap(\"-heap\", %'pg", expected "while" |...这似乎表明内部调用pgrep实际上并未翻译为命令调用,而是作为字符串传入。