2013-08-05 45 views
0

我正在尝试做这样的事情,这可能不会经常这样做。它是我们测试代码的一部分,它使用各种工具:java,ant,make和xml。通过make调用ant命令

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

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

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

在生成文件中,我打电话应该传递-Darg="argument1" -Darg2="argument2"参数。

但它不工作。

反正,似乎-Darg1= ...部分的-D部分与make不兼容,所以我试图把它包含在一个变量中,我可以通过make来蚂蚁。在蚂蚁中,它将变量“RULES_ARG”作为一个参数而不是两个。

我已经试过各种引用机制中的xml: “-Darg1 =参数1 -Darg2 =参数”, “-Darg1 =” 参数1" -Darg2 = “参数2””

而且它在Java的调用:"RULES_ARGS="+RulesArgs+" ", "RULES_ARGS=\""+RulesArgs+"\" "(与xml部分结合使用)。

等都没有可取的结果。

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

在此先感谢。

+0

无法用给出的信息回答这个问题。请提供您用来调用ant的make规则,您如何调用make的示例,您期望看到的输出以及您实际获得的输出。一定要删除你的配方行上的任何'@'前缀,这样你才能看到命令所运行的命令。 – MadScientist

回答

0

你是说你想用-D选项运行make?这是行不通的,因为make不支持-D

如果你想通过make命令行传递一些旗子上的蚂蚁调用使用,那么你应该这样做:当你运行make设置make命令行中的变量:

make ANTFLAGS='-DFOO -DBAR -DBAZ' 

然后你的makefile里面,当你运行ant,传递变量:

runant: 
     ant $(ANTFLAGS) ... 

如果这就是你要做的,请澄清你的问题不是什么。例如,你说它不起作用没有可取的结果,但是你没有给出关于你看到什么错误或不正确行为的任何细节。这样的错误信息将对澄清到底发生了什么有很大的帮助。

+0

我试图不要因为太多的细节而使原始帖子混乱,特别是因为我尝试了不同的选项,这些选项似乎也不起作用。 – user2284423

+0

糟糕,尽快点击返回键。无论如何,它似乎蚂蚁需要参数作为属性传递。像上面那样传递属性实际上看起来像:ant -Darg1 =“argument1”-Darg2 =“argument2”(如果在命令行上)。然而,它不在命令行上,它通过通过java传递的make进行传递......反正,我通过只传递一个参数,一个属性文件,然后传递了许多我想要的参数通过属性文件。不是我正在寻找的解决方案,而是现在可以使用的解决方案。 – user2284423

+0

通过忽略一些信息(如上所述),我希望这会与解决此问题的人打个响。我仍然希望... – user2284423