0

我正在尝试做一些可能不会经常做的事情。它是我们测试代码的一部分,它使用多种工具:java、ant、make 和 xml。

我们的 java 测试工具解析 XML。它通过文件中的 XML 标记获取参数:

<TAG>-Darg1="argument1" -Darg2="argument2"</TAG>

在 java 代码中,我正在调用 make 命令。从 java 调用 make 命令(通过 ProcessBuilder)。

在makefile中,我在-Darg="argument1" -Darg2="argument2"应该传递参数的地方调用ant。

但它不起作用。

无论如何,似乎-Dfrom-Darg1= ...部分与 make 不兼容,所以我试图将它包含在一个可以通过 make 传递给 ant 的变量中。在 ant 中,它采用变量 " RULES_ARG" 并将其视为一个参数,而不是两个参数。

我在 xml 中尝试了各种引用机制:“-Darg1=argument1 -Darg2=argument2”、“-Darg1="argument1" -Darg2="argument2""

以及在 java 中调用它的位置:("RULES_ARGS="+RulesArgs+" ", "RULES_ARGS=\""+RulesArgs+"\" "结合 xml 部分)。

等等都没有理想的结果。

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

提前致谢。

4

1 回答 1

0

您是说您正在尝试使用-D选项运行 make 吗?那行不通,因为 make 不支持-D.

如果您试图通过 make 命令行传递一些标志以用于 ant 调用,那么您应该执行以下操作:当您运行 make 时,请在 make 命令行上设置一个变量:

make ANTFLAGS='-DFOO -DBAR -DBAZ'

然后在你的makefile中,当你运行ant时,传递那个变量:

runant:
         ant $(ANTFLAGS) ...

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

于 2013-08-05T18:48:44.633 回答