- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 groovy CliBuilder 来解析命令行选项。我正在尝试使用多个长选项而不使用短选项。我有以下处理器:
def cli = new CliBuilder(usage: 'Generate.groovy [options]')
cli.with {
h longOpt: "help", "Usage information"
r longOpt: "root", args: 1, type: GString, "Root directory for code generation"
x args: 1, type: GString, "Type of processor (all, schema, beans, docs)"
_ longOpt: "dir-beans", args: 1, argName: "directory", type: GString, "Custom location for grails bean classes"
_ longOpt: "dir-orm", args: 1, argName: "directory", type: GString, "Custom location for grails domain classes"
}
options = cli.parse(args)
println "BEANS=${options.'dir-beans'}"
println "ORM=${options.'dir-orm'}"
if (options.h || options == null) {
cli.usage()
System.exit(0)
}
根据groovy文档,当我希望它忽略短选项名称并仅使用长选项名称时,我应该能够对选项使用多个“_”值。根据 groovy 文档:
Another example showing long options (partial emulation of arg
processing for 'curl' command line):
def cli = new CliBuilder(usage:'curl [options] <url>')
cli._(longOpt:'basic', 'Use HTTP Basic Authentication')
cli.d(longOpt:'data', args:1, argName:'data', 'HTTP POST data')
cli.G(longOpt:'get', 'Send the -d data with a HTTP GET')
cli.q('If used as the first parameter disables .curlrc')
cli._(longOpt:'url', args:1, argName:'URL', 'Set URL to work with')
Which has the following usage message:
usage: curl [options] <url>
--basic Use HTTP Basic Authentication
-d,--data <data> HTTP POST data
-G,--get Send the -d data with a HTTP GET
-q If used as the first parameter disables .curlrc
--url <URL> Set URL to work with
This example shows a common convention. When mixing short and long
names, the short names are often one character in size. One character options with arguments don't require a space between the option and the argument, e.g. -Ddebug=true. The example also shows the use of '_' when no short option is applicable.
Also note that '_' was used multiple times. This is supported but if any other shortOpt or any longOpt is repeated, then the behavior is undefined.
http://groovy.codehaus.org/gapi/groovy/util/CliBuilder.html
当我使用“_”时,它只接受列表中的最后一个(最后一个遇到的)。我做错了什么还是有办法解决这个问题?
谢谢。
最佳答案
不知道你的意思它只接受最后一个。但这应该有效...
def cli = new CliBuilder().with {
x 'something', args:1
_ 'something', args:1, longOpt:'dir-beans'
_ 'something', args:1, longOpt:'dir-orm'
parse "-x param --dir-beans beans --dir-orm orm".split(' ')
}
assert cli.x == 'param'
assert cli.'dir-beans' == 'beans'
assert cli.'dir-orm' == 'orm'
关于Groovy CliBuilder : only last LongOpt is taken in account,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5798842/
我正在学习 Groovy CliBuilder,我觉得它很棒,除了我不知道如何识别错误的参数。考虑以下示例代码: def cli = new CliBuilder() cli.s args: 1, l
使用 Groovy 的 CliBuilder可以提供多个参数,例如这里: http://marxsoftware.blogspot.com/2012/12/groovy-multiple-values
使用 Groovy CliBuilder,理想情况下我希望有一个 cmd-line 如下: ./MyProgram.groovy CommandName -arg1 -arg2 -arg3 是否可以使
我正在编写一个简单的 groovy 脚本,我希望它的命令行简单到- ./someTask.groovy task-profile 此外,该脚本应该有一个 --help 或 -h 选项,用于指定 tas
我是 Groovy 的新手,我试图了解 CliBuilder 上 args 属性的含义。我不确定这是否意味着选项可以采用的最大参数数量。 我有类似的东西 import java.text.* def
我创建了一个非常简单的脚本,并希望将参数传递给脚本。 像: grails> helloworld -n Howdy grails> helloworld -name Howdy 使用脚本: targe
我正在尝试使用 groovy CliBuilder 来解析命令行选项。我正在尝试使用多个长选项而不使用短选项。我有以下处理器: def cli = new CliBuilder(usage:
我正在使用 Groovy 的 CliBuilder 来解析命令行参数,并在命令行不正确时生成使用消息。作为使用消息的一部分,我希望能够打印所使用程序的实际名称(因为版本号随每个版本而变化)。如何获取所
我是一名优秀的程序员,十分优秀!