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

火山引擎 最新活动