【发布时间】:2016-01-19 11:29:02
【问题描述】:
我有一个由 gradle 任务运行的 java 和 groovy 类。我已经设法让它工作,但我不喜欢在命令行中传递参数的方式。这是我目前通过命令行执行的操作:gradle runTask -Pmode"['doStuff','username','password']"
采用这些参数的 build.gradle 代码如下所示:
if (project.hasProperty("mode")) {
args Eval.me(mode)}
然后我在我的 java 代码中使用我的参数/参数,如下所示:
String action = args[0]; //"doStuff"
String name = args[1]; .. //"username"
我想知道有没有办法以更好的方式传递参数,例如:
gradle runTask -Pmode=doStuff -Puser=username -Ppass=password
以及如何在我的 java 类中使用它们。
【问题讨论】:
-
我假设这些 java 类是项目代码的一部分,由 gradle 运行,对吗?你的任务是如何运行它们的?
-
@Adam 是的,你是对的,我的任务使用 javaexec 运行它们,它在其中一个 java 类中运行 main() 方法
-
好的,我明白问题了,等几分钟再回复)
-
传递给
main的命令行参数不是映射。您已经拥有的是与他们合作的常用方式。看起来您正在尝试像系统属性一样使用它们,这是故意不同的。相关问题:stackoverflow.com/questions/11696521 -
@blgt 所以这意味着我的方式(使用参数数组)是在这种情况下通过命令行传递参数的唯一方法?我的意思是我可以使用它,但我一直在寻找比这更好的方法,因为所有这些引号和括号很容易出现人为错误
标签: java gradle build.gradle