问题标签 [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.

0 投票
1 回答
52 浏览

java - Picocli:需要某些参数

picocli 是否可以实现以下功能?

有效的:

  • -A (-B | -C)

  • -D (-B | -C) [(-B | -C) ...]

(不需要-A / -D)

无效的:

  • -B 不带 -A 或 -D

  • -C 不带 -A 或 -D

  • -A 与 -B 和 -C

  • -D 与 -B 和 -C

  • -A 不带 (-B | -C)

  • -D 不带 (-B | -C)

谢谢!

0 投票
1 回答
132 浏览

java - 如何将 picoCLI 项目变成命令?

我有一个带有命令行变量的工作项目。当我使用命令行选项在 IntelliJ 中运行它时它可以工作,我如何将它变成一个完整的终端命令?

0 投票
1 回答
120 浏览

kotlin - picocli - 指定时自动解析文件

我有一个带有多个子命令的 CLI,其中一些子命令有一个可选标志-f,可以使用该标志指定输入文件,例如

输入文件格式可能因命令而异。理想情况下,如果文件被指定为参数,我想自动解析文件。此外,每个命令的文件内容可能不同(但将是特定格式,CSV 或 JSON)。

例如我想要这样的东西

如果这是可能的或如何做到这一点,有人会知道吗?

0 投票
0 回答
31 浏览

java - 如何获取所有 npm 安装日志并将它们写入 java cli 应用程序?

我正在使用 java picocli 构建一个命令行应用程序,它基本上包装了 npm、maven、git、azure 和一些我想要预先完成的实用程序命令。我的问题是,例如,当 npm install 运行时,它会打印一整套内容,例如关于它安装的所有内容和日志的警告,以及写入大量内容的进度条。有什么方法可以模拟我的应用程序吗?现在我有这个来运行一个进程:

有什么方法可以让我获得其他打印件以及进度条吗?现在我只得到最后的 5 行,说明安装后漏洞的数量?

0 投票
1 回答
53 浏览

java - 安排任务的 Cli java 应用程序,释放 cmd/终端并在预定时间执行任务

我正在尝试使用 spring 和 picocli 在 java 中执行 cli 应用程序,您可以在 cmd 上启动它,并通过对话框进行一些配置来编写任务,(在这种情况下,在同一个 cmd 上显示“警报消息”。)我使用了 Timer 和 TimerTask 并且它可以工作,但是在应用程序执行此任务并完成之前,我无法在 cmd 上执行任何其他操作。

我希望配置任务,完成此配置对话框,能够使用命令行执行任何其他操作,并在预定的日期和时间在 cmd 上打印一条消息,或者每 XX 分钟打印一条循环消息。

我花了很多时间试图寻找解决方案,但可能这是不可能的......

我认为可能是一个很好的解决方案的其他选项是一种从 cmd 中的任何位置使用自定义命令(作为环境变量)并与在后台连续运行的应用程序交互的方法。这样,cmd 将只是一种在后台从该应用程序发送或接收信息的通信方式。

但同样,我也没有找到任何方法来做到这一点。

有没有办法做这两个选项中的任何一个,或者你有其他想法来完成这个任务?

提前致谢!

0 投票
1 回答
55 浏览

java - 在 Picocli 的单元测试中检查选项的值

在使用picocli的实用程序的单元测试中,我想断言 picocli 为选项分配了正确的值。如何在单元测试中获取与选项关联的值?

这是单元测试的当前版本:

0 投票
1 回答
307 浏览

spring-boot - Picocli Spring Boot CLI 应用程序

我正在尝试使用 picocli 创建一个 Spring Boot CLI 应用程序。我按照教程中提到的步骤进行操作,但是当我启动服务时,整个流程都会运行。我想要的是从终端调用命令,然后只有流程应该触发。谁能帮我解决这个问题。下面是我的代码。

组件类

0 投票
1 回答
149 浏览

java - picocli:如果没有给出参数,则显示帮助

当我在没有参数的情况下运行我的 CLI 应用程序时,我想自动显示帮助。我已经看到这个问题在 StackOverflow 上多次出现。我花了很多时间弄清楚这一点,我已经阅读了官方文档,查看了文章,但仍然不清楚如何实现这一点。

这就是我所拥有的:

主班

处理show-user函数的类:

处理create-user命令的类:

案例1:当我调用这个应用程序时-h,帮助会正确显示:

案例 2:显示第一个函数的帮助,调用show-user -h

案例 3:为第一个函数提供帮助,调用create-user -h

案例 4:在没有参数的情况下调用我的应用程序显示:

我的问题很简单:

当我在没有参数 ( ) 的情况下运行 CLI 工具时如何显示帮助Case 4

我想我需要HelloCli.call()使用一个循环将自定义代码添加到方法中,该循环从实现这些功能的两个类中收集帮助文本。但不确定如何。对于这个流行的用例,我还没有找到任何示例代码。

我的附加问题与第一个问题类似:我能否以某种方式显示从Case 2和中的所有内容一起显示的全部帮助Case 3

0 投票
0 回答
35 浏览

java - 如何在 picocli 中添加接口的字段作为选项?

我在重构使用 picocli 的代码时遇到问题

这是示例

目前,我的 cli 工具的工作方式类似于

尽管 A 类和 B 类都运行良好,但在重构我的代码时,我想使用接口将公共变量放在一个位置。像这样

但是,当我执行包含所有选项的应用程序时,编译界面的选项时出现故障。

是不是不可能给界面中的变量选项?

感谢您阅读

0 投票
0 回答
38 浏览

java - 将 picocli 与 picocli-shell-jline3 和配置的 java 模块一起使用会导致未命名的模块读取包编译错误

在具有多模块的项目中,我们希望使用 picocli 和 jline 来构建控制台应用程序。我们为每个模块创建了一个 module-info.java。但是使用 picocli 我们无法编译我们的应用程序。我们有很多错误,比如

我们在 gradle 中包含了以下依赖项

我们的java-modules.info样子

我遵循了常见问题解答https://github.com/remkop/picocli/wiki/Java-9-modules中的建议,但没有成功。

如果我们禁用 java 模块,则可以构建并运行应用程序。

有没有人有类似的问题并知道一些建议?