问题标签 [picocli]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Picocli 解析搜索字符串
我想为我的程序提供一个搜索字符串,例如:
我想创建谓词来搜索包含红色或蓝色和黑色但不是非产品的主机名。我不清楚如何将逻辑运算符与 Picocli 中的字符串一起解析以创建谓词。是否有一种简单直接的方法可以将字符串解析为谓词?
我的 CLI 设置如下:
}
java - 在运行时启用或禁用选项
我正在尝试使用 Picocli 制作交互式 cli,并希望在完成 a(n) 操作/要求后显示一些选项。有没有办法在不使用 CommandSpec 的情况下做到这一点?
之前显示的选项
之后显示的选项
输出应该是
java - 实现 cli 应用程序的适当方法,该应用程序还使用 Micronaut 的服务配置文件
我在创建 REST 服务器或 Picocli CLI 应用程序方面没有问题。但是,如果我想在一个应用程序中同时拥有这两者怎么办?
问题是,我想要一个通过 REST 服务器提供一些业务逻辑的应用程序(那里没问题),但在其他一些情况下,我想通过 CLI 触发业务逻辑而不启动 HTTP 服务器(例如,对于 CI/CD )。
我不确定如果我通过启动应用程序
PicocliRunner.run(Application.class, args)
并且如果给定特定参数运行服务器是否遇到问题Micronaut.run(Application.class);
,因为它们会创建不同的上下文。
有谁知道实现这一目标的正确方法?
这就是我解决它的方法:
java - Lambda 表达式中的模式匹配
我正在使用 Picocli 创建一个 CLI 应用程序。下面的代码位于我的一个类的 run 方法中。它使用 Picocli 提供的 CommandLine.execute 命令执行。
我无法弄清楚这段代码中导致空指针的原因:
导致错误的输入:
完整的错误信息:
picocli - 显示多个命令用法的 picocli 示例
我得到了一些与 picocli 配合得很好的代码:
但我没有找到一个显示使用的多个命令的简单示例,例如这个:
https ://github.com/remkop/picocli/blob/master/src/test/java/picocli/Demo.java
不编译:
有人可以发布一个关于如何使用多个命令的示例吗?
java - 如何从 picocli 命令正确启动 micronaut 网络服务器?
我有一个micronaut cli 应用程序。
一些命令是我想用micronaut 端点监控的长时间运行的过程
因为当您使用 cli 应用程序时,micronaut 会检测并且不会启动网络服务器。
在这个长时间运行的命令中,我添加了这个来启动网络服务器:
大部分代码来自Micronaut.java。
完整的命令源代码:
网络服务器启动良好。我添加了 2 个端点,记录器和运行状况。记录器端点运行良好,但健康端点(像大多数端点一样)因此堆栈跟踪而失败: 完整堆栈跟踪
有什么线索可以做到这一点吗?
java - Picocli:为具有 Map 类型的选项指定默认值
我有这样的选择
当我执行以下操作时,这确实有效:
但是当我这样做时
这没用。有没有办法为没有关联值的键添加默认值?
picocli - 为什么 picocli 需要 ArgGroup 中的 args,即使默认多重性为 0..1?
您可以在此处找到代码示例。 链接到我的 GitHub 项目
在文件 Driver.java 中,可以看到我指定了一个独占的 ArgGroup。我根据文档的理解是默认的多重性是 0..1。文档指出,“默认值为 multiplicity = "0..1",这意味着默认情况下可以省略或指定一个组”。
我也尝试将多重性显式设置为 0..1 但这并没有改变行为。在没有 -al 或 -rl 选项的情况下运行程序,解析会引发 NullPointerException。该框架的行为就像需要其中一个选项一样。这与文档不一致。如果我愿意,我应该可以只使用 -n 选项来运行这个程序。我希望 ArgGroup 完全是可选的。
git hub 链接上的程序是一个功能齐全的 maven 项目,可以克隆、构建和运行。然而,这里是堆栈跟踪。没有指定参数或没有 arg 组。我希望完全没有参数可以打印使用信息。此外,该组的默认多重性应该是 0..1,所以我不应该指定 arg 组中的选项之一。
spring-boot - 如何将 Picocli 解析的参数注入 Spring Bean 定义?
我正在尝试使用Picocli和 Spring Boot 2.2 将命令行参数传递给 Spring Bean,但不确定如何构建它。例如,我有以下@Command
从命令行指定连接用户名和密码,但是,想使用这些参数来定义一个 Bean:
我在这里陷入了一个循环。我需要命令行用户名/密码来实例化我的 JMSPublisherBean,但这些仅在运行时可用,在启动时不可用。
我已经设法通过使用延迟初始化、将ClearJdoCommand
bean 注入配置 bean 并run()
从 Spring 上下文中检索我的 JMSPublisherBean 来解决这个问题,但这似乎是一个丑陋的 hack。此外,它迫使我所有的豆子都是懒惰的,这不是我的偏好。
是否有另一种/更好的方法来实现这一目标?
java - 使用 Picocli,我如何需要一个位置参数,然后是可选参数,具体取决于位置参数的值
我有一种情况field1
,我需要三个强制参数(field2
和可以输入)。field3
command name
create
list
有些命令会有参数,有些则没有。我该如何处理?
我尝试了以下操作,但出现错误: