【问题标题】:How to run sbt multiple command in interactive mode as one command? [duplicate]如何在交互模式下将 sbt 多个命令作为一个命令运行? [复制]
【发布时间】:2017-09-06 13:51:55
【问题描述】:

我想通过将两步合二为一来改进 sbt 组装/打包操作。 两步是:

$ sbt
> project XXX
....
> assembly
Ctrl + c to exit

另外,assembly 是一个任务表单 fat jar sbt 插件。
我尝试使用sbt project analysis assembly 但不起作用。遇到错误:

[error] Not a valid command: analysis (similar: alias)
[error] Not a valid key: analysis (similar: readAnalysis, mainClass, less)
[error] analysis
[error]         ^

如何实现?谢谢

【问题讨论】:

  • analysis 不是 sbt 命令(除非您定义或导入了它)。你希望它成为project 命令的参数,对吧? Sbt 无法读懂你的想法,所以你需要帮助它:sbt "project analysis" assembly。希望它有效,另见scala-sbt.org/0.13/docs/…
  • 谢谢,sbt "project analysis" assembly 有效。analysis 关键字是我的项目名称,我只是不知道如何使用一行 cmd 切换项目。你能回答一下吗?
  • 重复的问题没有回答标题中的实际问题:在交互模式下运行多个命令。下面@Justin Kaeser的答案回答了。
  • 我按照 SO 的建议做了another question

标签: scala sbt


【解决方案1】:

在 sbt shell 中,使用; 链接命令:

;project XXX; assembly

从命令行调用,用引号将单个命令括起来:

sbt "project XXX" assembly

或将整个链括在引号中:

sbt ";project XXX; assembly"

从 shell 中另一个项目的上下文中调用子项目 XXX 中的任务:

XXX/assembly

【讨论】:

  • 我已经问过关于在 sbt shell 中运行多个命令的更精确的问题。我复制了你的答案,但你得到荣誉是公平的。如果您添加上面的答案,或者只是复制我的改编版本,我会删除我的
猜你喜欢
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-28
  • 2023-03-17
  • 2016-06-14
  • 1970-01-01
相关资源
最近更新 更多