gpt4 book ai didi

java - 如何在没有选项的情况下在 groovy 中使用 CliBuilder?

转载 作者:行者123 更新时间:2023-12-05 04:28:27 26 4
gpt4 key购买 nike

我正在编写一个简单的 groovy 脚本,我希望它的命令行简单到-

./someTask.groovy task-profile

此外,该脚本应该有一个 --help-h 选项,用于指定 task-profile 可以采用的所有不同值。


task-profile 可以采用以下值-

  • 任务 1
  • 任务 2
  • 任务 3

--help 选项应该告诉用户所有可用的 task-profile 值以及如何使用它们。

我搜索了很多但只找到了有选项的示例(例如-a-b-c 等)

如何编写没有选项但只有位置参数的脚本,我可以使用 switch 语句对其进行硬编码,但我想学习使用 CliBuilder。任何帮助将不胜感激。

最佳答案

CliBuilder 在 Groovy 2.5 中进行了更新,添加了对 picocli 的支持。支持的实现(groovy.cli.picocli.CliBuilder)。 This article显示了 CliBuilder 中现在可用的新功能的许多详细信息。

但是,即使在这个版本的 CliBuilder 中,公共(public) API 也只支持一个位置参数列表,以及对该列表的单个描述。

@Unparsed(description = 'positional parameters')
List positionals

遗憾的是,CliBuilder API 目前不提供在您的应用程序的使用帮助消息中显示单独的位置参数和单独描述的方法。

如果您的目标是拥有单独的位置参数,可能具有单独的类型、单独的默认值等,并让使用帮助消息显示每个位置参数的单独描述,那么您可能需要考虑直接使用 picocli(无需CliBuilder)在您的 Groovy 脚本或 Groovy 应用程序中。

picocli 用户手册有许多 Groovy 示例,并且在 using picocli in Groovy applications and Groovy scripts 上有专门的部分.这篇文章 ( Groovy Scripts on Steroids) 也可能有用。

这是一个示例 task-profile Groovy 脚本,带有三个位置参数:

// task-profile.groovy
@Grab('info.picocli:picocli-groovy:4.6.3')
@GrabConfig(systemClassLoader=true)
@Command(name = "task-profile", version = "task-profile 1.0",
mixinStandardHelpOptions = true, // add --help and --version options
description = "Task Profile")
@picocli.groovy.PicocliScript2
import groovy.transform.Field
import static picocli.CommandLine.*

@Parameters(index = "0", description = "The first task")
@Field String task1;

@Parameters(index = "1", description = "The second task")
@Field String task2;

@Parameters(index = "2", description = "The third task")
@Field String task3;

// PicocliBaseScript2 prints usage help or version if requested by the user

println "hi, the selected tasks are $task1, $task2 and $task3"

关于java - 如何在没有选项的情况下在 groovy 中使用 CliBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72591344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com