2013-08-05 56 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