问题标签 [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 投票
0 回答
190 浏览

scala - 如何在 Ammonite REPL 中创建 Scala 演示编译器?

我想在 Ammonite REPL 中创建一个 Scala 演示编译器,但是我总是得到Missing dependency 'object scala in compiler mirror'.

我已经尝试过在未找到编译器镜像中的对象 scala 中提到的解决方法- 以编程方式运行 Scala 编译器。不幸的是,它不起作用。

如何让它发挥作用?

相同的代码适用于官方 Scala REPL。

0 投票
4 回答
9313 浏览

scala - VS Code 在集成控制台中执行当前行或选择

这位习惯于 elpy 的 Emacs 老用户正在尝试使用 Scala 以及更具体地说是 Ammonite repl 迁移到 VSCode。

我使用 Ctrl+' 打开集成终端 & 我所要做的就是在 bash shell (ubuntu) 上输入 amm 来打开 repl;但是,我仍然想念能够使用 Ctrl+Enter 将编辑器中的行或选择发送到集成 shell。

我想这意味着一些编码。我可以从哪里开始?有没有人完成类似的?

非常感谢,

0 投票
1 回答
111 浏览

scripting - 如何知道当前脚本所在的目录

在编写脚本时,我想知道当前脚本在哪里,以便定位其他文件。

使用常规的 Scala 脚本,我知道如何做到这一点,但使用 Ammonite 脚本我不知道。

0 投票
1 回答
114 浏览

scala - 如何在管道运算符上使用 sbt/amm scala 脚本?

我想用 scala 脚本处理日志输出。像这样:
java -jar app.jar | log.sc或者java -jar app.jar | amm log.sc 如何写一个log.sc处理app.jar打印日志的交易?

动机

替换java -jar app.jar > app.log为一些更智能的方式来处理输出流。
从现在开始,我想按天将输出流保存到不同的文件中。

谢谢。

更新

想想这个例子:

它组装成一个Loop.jar,我该如何处理按日期打印日志到文件?

0 投票
1 回答
76 浏览

scala - 如何使用 Amonite 提前提供密码进行 ssh

Problem: I need to access a command line API on a Remote machine.

我正在使用 Scala Amonite 库,我想知道是否有办法 ssh 并提供密码,这样我就可以在应用程序中进行操作,而不必在其中输入密码。

0 投票
2 回答
1737 浏览

scala - 来自具有纯 Scala API 或 Ammonite API 的 Scala 程序中的 SSH 命令

我想执行一个 SSH 命令,然后在 scala 中的远程机器上执行一些命令。Scala API 和 Scala Ammonite 都提供了执行系统命令的方法。但是我在使用 ssh 时遇到问题。如何运行 ssh 命令然后运行命令并从我的 scala 程序中获取结果?

编辑1

在那篇文章中发现以下问题使用 scala 通过 ssh 远程发出命令

“ssh user@Main.local 'mkdir 桌面/测试'”。!

我想知道如何使用 scala Amonite API 来完成。我一直找不到路。

0 投票
2 回答
690 浏览

scala - 如何发出产生无限输出并立即返回的命令

当我编写以下代码时(在菊石中,但我认为这并不重要)

("tail -f toTail.txt" lineStream) foreach(println(_)),程序按预期给我最后一行,然后挂起,即使我在文件中写了更多内容,也没有任何结果。

API 如何支持具有无限输出的进程?

我试着写val myStream = ("tail -f toTail.txt" lineStream_!) ,但它仍然没有返回写掉

这是 scala 文档所说的:

lineStream:像 run 一样立即返回,生成的输出通过 Stream[String] 提供。获取该 Stream 的下一个元素可能会阻塞,直到它变得可用。

因此我不明白为什么它会阻塞

顺便说一句,我与 Ammonite API 的行为完全相同

如果%%("tail", "-f", "toTail.txt")再次键入该方法只是挂起并且不会立即返回。

0 投票
1 回答
252 浏览

ammonite - 如何让 scala 的 ammonite 使用 scala.util 而不是 ammonite.util 作为 util 的默认值?

在“官方” scala REPL 我可以做

但在 Ammonite-REPL 我得到

所以现在我必须使用scala.前缀让它在 Ammonite 中工作:

我对 Scala 有点陌生,所以我不明白为什么 ammonite 会使用util与(对我而言)“官方”不同的util,所以如果有人能为此提供理由,我将不胜感激。

更具体地说,有什么办法util可以scala.util代替ammonite.util

0 投票
0 回答
494 浏览

java - 编译 Ammonite 脚本时堆内存不足

我正在尝试创建一个脚本,该脚本使用Slick 代码生成器将整个数据库映射到 Scala 文件,运行 docker 容器,并在其中运行的数据库上执行 ddl,每次运行时都有效地重建数据库.

这实际上很好用(我只需要编辑文件的第一行,删除包声明),但只有当我将 Tables.scala(输出文件)缩减为一个映射时,它才会在数据库的新实例(使用“Tables.ddl.createStatements”)。

问题是整个文件是 8k+ 行生成的代码,每次尝试编译(运行“amm buildDatabase.sc”)时,都会抛出这个异常:

我试过给以下

作为 jar 运行:

更改 JAVA_OPTS:

更改 SBT_OPTS:

...但似乎没有任何效果。这使用 Intellij 编译(并运行!),具有 512m 的堆内存。

注意,因为每次运行脚本都需要重新生成这个文件,所以我把主文件分成了三个编译块。我不确定这是否与我的问题有关。

请帮忙!谢谢你。:)

0 投票
1 回答
203 浏览

ammonite - Ammonite 类路径与 Github4s 冲突 (java.lang.AbstractMethodError)

我正在编写一个 ammonite 脚本来使用 Github4s 库来访问 github api 并且有一个问题,可能与类路径有关。脚本的简单版本如下:

它几乎是从 github4s 教程中复制而来的,但失败了:

完全相同的代码在一个简单的 SBT 项目中工作,这让我觉得 Ammonite 在类路径中注入了一些东西,它破坏了 github4s。

有没有办法在 ammonite 脚本中有一个更干净的类路径,或者我还能如何解决这个问题?