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

如何配置picocli在每次执行前均显示使用信息?

在无类Groovy脚本中让picocli每次执行都显示使用信息

picocli本身没有内置的“始终显示帮助”配置项,但可以通过两种简单方式实现需求:

方法一:手动打印帮助信息

在脚本完成业务逻辑后,显式调用picocli的帮助打印方法,不管参数是否合法都执行这一步。

示例脚本:

@Grab('info.picocli:picocli:4.6.3')
import picocli.CommandLine
import picocli.CommandLine.*

// 脚本级别的picocli注解配置
@Command(
    name = 'greet',
    description = '一个简单的问候脚本',
    mixinStandardHelpOptions = true // 自带-h/--help选项
)
@Option(names = ['-n', '--name'], required = true, description = '要问候的名字')
String userName

// 执行业务逻辑
println "哈喽,$userName!"

// 手动打印使用帮助
def cli = new CommandLine(this)
cli.usage(System.out)

执行效果:哪怕传入了必填的--name参数,脚本执行后也会输出完整的使用信息。

方法二:自定义执行策略

如果想在业务逻辑执行前就显示帮助,可以自定义picocli的执行流程,比如在解析参数后立即打印帮助:

@Grab('info.picocli:picocli:4.6.3')
import picocli.CommandLine
import picocli.CommandLine.*

@Command(
    name = 'greet',
    description = '一个简单的问候脚本',
    mixinStandardHelpOptions = true
)
@Option(names = ['-n', '--name'], required = true, description = '要问候的名字')
String userName

def cli = new CommandLine(this)
// 先解析参数
ParseResult parseResult = cli.parseArgs(args)

// 打印帮助信息
cli.usage(System.out)

// 执行命令逻辑(如果参数合法)
if (!parseResult.isHelpRequested()) {
    println "哈喽,$userName!"
}

这种方式会先输出帮助信息,再执行业务逻辑,适合需要用户每次都看到使用说明的场景。

注意事项:

  • 确保引入的picocli版本兼容(示例用的是4.6.3,可根据需要调整)
  • 如果脚本有错误参数,picocli依然会自动输出错误信息和帮助,不会冲突

内容的提问来源于stack exchange,提问作者Asif Kamran Malick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:46:06