1

我有一个插件,它使用 Plexus 命令行来调用一些外部进程并捕获输出。其中一个参数是带有空格和引号的有趣格式,例如--range:“2008 年 8 月 25 日”-“2009 年 8 月 4 日”。我无法更改参数的所需格式,但 Plexus 检测到参数中的空格并将整个内容用引号括起来。

所以

call --range:"25 Aug 2008"-"04 Aug 2009"

变成

call "--range:"25 Aug 2008"-"04 Aug 2009""

并且调用失败。

我可以让丛停止逃避争论吗?

4

1 回答 1

1

Commandline 对象使用 Shell 与本地环境交互,您可以配置 Shell 以覆盖默认转义过程以不转义任何引号:

Commandline cl = new Commandline("call");
commandline.getShell().setQuotedArgumentsEnabled(false);

请注意,这意味着不会引用任何参数,因此请谨慎使用!

于 2009-08-10T12:53:08.173 回答