You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ammonite:如何从Ivy依赖调用其他脚本?打包调用遇错求助

解决Ammonite脚本导入语法错误的问题

你遇到的这个'.' expected but eof found错误,是因为导入本地脚本时没有遵循Ammonite的语法规则导致的。

问题根源

你的导入语句把Ivy依赖和本地脚本混在一起,但本地脚本的导入必须用$file前缀来标识,你直接写local_build的写法让解析器无法正确识别语法结构,进而抛出了语法错误。

修正后的脚本示例

你可以选择两种方式修正导入逻辑:

方式1:拆分导入语句

import $ivy.`mycompany:myproject_2.12:2.1.0-SNAPSHOT`
import $file.local_build

@main def doit(): Unit = println(local_build.curl("http://localhost:8080"))

方式2:同一行内组合正确导入

import $ivy.`mycompany:myproject_2.12:2.1.0-SNAPSHOT`, $file.local_build

@main def doit(): Unit = println(local_build.curl("http://localhost:8080"))

额外注意事项

  • 确保local_build.sc和你的sol_local_build.sc在同一目录下,如果不在同目录,需要给$file补充相对或绝对路径(比如$file./scripts/local_build)。
  • 若要将脚本打包为JAR交付,可使用amm --compile sol_local_build.sc命令生成可执行JAR,这样其他项目调用时就能正确包含所有依赖和脚本逻辑。

内容的提问来源于stack exchange,提问作者pme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:48:47