通过make调用ant命令

时间:2013-08-05 18:10:59

标签: java xml ant makefile

我正在尝试做那些经常无法做到的事情。它是我们的测试代码的一部分,它使用各种工具: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部分结合使用)。

等。一切都没有理想的结果。

我想知道是否有人试图做类似的事情,以及解决问题的工作方法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您是说您尝试使用-D选项进行制作吗?这不起作用,因为make不支持-D

如果你试图通过make命令行传递一些标志来在ant调用上使用,那么你应该这样做:当你在make命令行上运行make set一个变量时:

make ANTFLAGS='-DFOO -DBAR -DBAZ'

然后在makefile中,运行ant时,传递该变量:

runant:
         ant $(ANTFLAGS) ...

如果那不是你想要做的,请澄清你的问题。例如,您说它不起作用没有理想的结果,但您没有提供有关您看到的错误或不正确行为的任何详细信息。这样的错误消息将大大有助于澄清究竟发生了什么。