我正在尝试将JSON字符串命令行参数传递到我的Gradle Java应用中。JSON解析器出错,因为Gradle似乎在去除JSON字符串中的双引号。以以下代码为例:
public static void main(String[] args)
{
for (String arg : args) {
String msg = "commandline arg: " + arg;
System.out.println(msg);
}
}
...和以下输出:
> java MyApp '{"firstName":"Rocky", "lastName":"Balboa"}'
commandline arg: {firstName:Rocky, lastName:Balboa}
> java MyApp '{\"firstName\":\"Rocky\", \"lastName\":\"Balboa\"}'
commandline arg: {"firstName":"Rocky", "lastName":"Balboa"}
使用反斜杠转义在JVM中可以正常工作,但在Gradle中就不太适用了:
> gradle clean execute -DmainClass='MyApp' --args='{"firstName":"Rocky","lastName":"Balboa"}'
commandline arg: {firstName:Rocky,lastName:Balboa}
> gradle clean execute -DmainClass='MyApp' --args='{\"firstName\":\"Rocky\",\"lastName\":\"Balboa\"}'
commandline arg: {firstName:Rocky,lastName:Balboa}
是否有方法指示Gradle将这些双引号视为文字?
1条答案
按热度按时间a8jjtwal1#
尝试在生成脚本的JavaExec中定义参数
并使用gradle命令- gradle运行-Dargs="{“名称”:“xyz”,“标识”:“123”}”