我正在尝试做那些经常无法做到的事情。它是我们的测试代码的一部分,它使用各种工具:java,ant,make和xml。
我们的java测试工具解析XML。它通过文件中的XML标记获取参数:
<TAG>-Darg1="argument1" -Darg2="argument2"</TAG>
在java代码中,我正在调用make命令。 make命令是从java(通过ProcessBuilder)调用的。
在makefile中,我调用ant应该传递-Darg="argument1" -Darg2="argument2"
args的地方。
但它不起作用。
无论如何,似乎来自-D
部分的-Darg1= ...
与make不兼容,所以我试图将其包含在我可以通过make传递给ant的变量中。在ant中,它采用变量“RULES_ARG
”并将其视为一个参数,而不是两个。
我在xml中尝试了各种引用机制:“-Darg1 = argument1 -Darg2 = argument2”,“ - Dalg1 =”argument1“-Darg2 =”argument2“”
以及它在java中调用的位置:"RULES_ARGS="+RulesArgs+" ", "RULES_ARGS=\""+RulesArgs+"\" "
(与xml部分结合使用)。
等。一切都没有理想的结果。
我想知道是否有人试图做类似的事情,以及解决问题的工作方法?
提前致谢。
答案 0 :(得分:0)
您是说您尝试使用-D
选项进行制作吗?这不起作用,因为make不支持-D
。
如果你试图通过make命令行传递一些标志来在ant调用上使用,那么你应该这样做:当你在make命令行上运行make set一个变量时:
make ANTFLAGS='-DFOO -DBAR -DBAZ'
然后在makefile中,运行ant时,传递该变量:
runant:
ant $(ANTFLAGS) ...
如果那不是你想要做的,请澄清你的问题。例如,您说它不起作用和没有理想的结果,但您没有提供有关您看到的错误或不正确行为的任何详细信息。这样的错误消息将大大有助于澄清究竟发生了什么。