【发布时间】:2014-11-20 19:00:01
【问题描述】:
在我的项目中,基于 Gradle,我需要解析命令行并获取选项“-foo=...”。
我尝试使用 Getopt,但我无法理解一些事情:
我需要使用 LongOpt 从命令行读取“-foo”吗? 如何使用“gradle run”命令将参数传递给命令行?
附言对不起我的英语不好
【问题讨论】:
在我的项目中,基于 Gradle,我需要解析命令行并获取选项“-foo=...”。
我尝试使用 Getopt,但我无法理解一些事情:
我需要使用 LongOpt 从命令行读取“-foo”吗? 如何使用“gradle run”命令将参数传递给命令行?
附言对不起我的英语不好
【问题讨论】:
gradle run 旨在启动不带任何参数的应用程序。如果你的论点很简单,你可以解决这个问题。
例如:
apply plugin: 'application'
run {
if (project.hasProperty("runArgs")) {
args project.runArgs.split()
}
}
使用gradle run -PrunArgs="arg1 arg2 arg3" 运行它
这输入起来很麻烦,如果你的参数需要转义或有空格,这将更难处理。那时,我建议只运行 gradle installApp,然后运行适当的启动脚本 (build/install/<app>/bin/<app> arg1 arg2 arg3)。
你当然可以做一些更精细的事情:http://forums.gradle.org/gradle/topics/how_can_i_provide_command_line_args_to_application_started_with_gradle_run
【讨论】:
使用
gradle -q -Pfoo=bar printProps
在 build.gradle 中
task printProps << {
println foo
}
输出
bar
一个例子here
【讨论】: