我使用ant構建了一個組合客戶端項目的Java和C++(JNI)代碼的混合體。我最近將構建的C++部分轉換爲使用ant和cpptasks來構建C++代碼,而不是讓ant調用構建代碼所需的各種版本的Visual Studio。將ant命令行選項傳遞給exec'd ant進程?
爲了得到這個工作,就必須使用Ant的exec任務觸發另一隻螞蟻執行的cpptasks-之前產卵關閉一個殼,其中shell腳本或批處理文件執行來設置編譯環境基於C++的構建。從本質上講,C++ - 在主Ant構建文件相關的構建任務看起來是這樣的Windows:
<target name="blah">
<exec executable="cmd" failonerror="true">
<arg value="/C"/>
<arg line=""${cpp.compiler.path}/vsvars32.bat" && %ANT_HOME%/bin/ant -f cpp-build.xml make-cpp-stuff" />
</exec>
</target>
沒有辦法擺脫vsvars32.bat調用的代碼必須與多個VS建成版本和構建機器上,其中Visual Studio安裝程序都不能成爲構建用戶環境的一部分。
以上的作品,但我跑入的問題是,我想通過特定的命令行選項(如-verbose,-quiet,-emacs)孩子的螞蟻,如果他們被傳遞到親螞蟻。是否有可能通過命令行選項訪問父螞蟻?請注意我不是在談論通常的屬性定義,而是螞蟻的內部選項。
感謝您指出如何將命令行分成 - 終於幫助我正確地做到這一點。這就是說,它並沒有解決我有,即通過-emacs/-verbose/-QUIT孩子螞蟻的實際問題,如果調用該對象「嗒嗒」有這些選項或這些選項的設置上一個螞蟻命令行。 順便說一句,我也冒昧地在arg值列表中插入一個重要的缺失元素。 –
2009-09-21 13:04:20