【问题标题】:How to know available commands (=named operations) in sbt如何知道 sbt 中的可用命令(=命名操作)
【发布时间】:2013-10-28 21:52:39
【问题描述】:

我使用 sbt 0.13.1

要列出sbt 项目中的任务,可以使用sbt tasks -V

作为A "command" looks similar to a task: it's a named operation that can be executed from the sbt consoleTypically, you would resort to a command when you need to do something that's impossible in a regular task,我如何知道哪些命令可用于sbt 项目?

是否有类似的命令可以列出 sbt 项目中的所有命令?

说,sbt-idea 插件安装在一个 sbt 项目中。我如何查询项目以了解the gen-idea command

考虑到@Mark Harrah:"gen-idea is a command, not a task." 的评论和sbt-idea 插件的文档,它写着"Use the gen-idea sbt task to create Idea project files."(注意task的使用),这真是令人困惑。我很困惑。

【问题讨论】:

    标签: sbt


    【解决方案1】:

    没有任何参数的“帮助”难道不这样做吗?据我了解,不带任何参数的“任务”将列出可用任务,不带参数的“帮助”将对命令执行类似的操作。

    【讨论】:

    • 很遗憾没有。您可以使用commands 查看项目的可用命令,但它不会给您他们的名字,只是字符串化的 (toString) 版本。我刚刚注意到sbt.SimpleCommand 是私有的,可能无法开发一个命令来列出这些命令。我希望我弄错了。
    • 列出命令的命令已经开发——它是help。命令的语法具有完全的灵活性,因此它们必须提供帮助。许多 Command 构造函数都有指定此帮助的方法。 sbt-idea 似乎没有提供帮助,所以它没有出现。
    【解决方案2】:

    我认为这是一个实现细节。

    您是否有需要仅列出命令的真实用例? :-)

    -- 更新 1:

    sbt
    $ <tab><tab>
    Display all 339 possibilities? (y or n) [y]
    # ... 
    gen-idea
    # ...
    

    只需在终端中按选项卡即可为您提供所有可以执行的操作,包括 gen-idea - 您的用例。

    【讨论】:

    • 项目中的新用户想知道他们能做什么。任务有任务命令,但由于 gen-idea 不是任务,它没有在任何地方列出。这足以成为一个真实的用例吗?
    • 感谢您的提示!我认为这是在会话中找出可用命令。您的解决方案仍然需要“解析”输出。我希望能够查询给定插件的任务。如果没有人很快提供另一个答案,我会接受你的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2021-06-08
    • 2023-03-04
    • 2012-10-07
    • 2012-06-24
    • 2017-03-15
    相关资源
    最近更新 更多