2012-05-04 20 views
2

ANT可以更改XML文件中的值嗎?ANT可以更改XML文件中的值嗎?

我正在研究一個Java,Spring系統和XML文件,我們有像服務器名稱,用戶名,密碼這樣的東西,我們也在推廣這個系統。我想讓ANT腳本詢問SA的服務器名稱,用戶名,然後替換XML文件中的值。

回答

1

您可能還會考慮從PropertyPlaceholderConfigurator中加載Spring xml文件中的屬性。然後,您可以將您的屬性保存在標準的Java .properties文件中,然後進行編輯,無論您是通過層次提升項目的時間還是想要的。這裏有一箇中途體面的例子:example

+0

這對於Spring代碼來說非常棒,但對於我的Log4j.xml文件更改如何。 – SJS

+0

啊,所以比春天還要多。在這種情況下,我將爲XmlTask​​答案添加一個+1。我也使用過這個,並取得了一些成功。我將補充一點,xmltask還允許您預定義XML塊並通過ID引用它們,以便您可以構建與每個層相關的XML塊集合,然後引用您想要部署的塊。 – David

2

查看Ant replace task的字符串替換,只需爲佔位符選擇合適的字符串即可。可以使用input task收穫所需的值。

+1

也可以使用複製任務與過濾 –

3

我曾經擁有像@ someProperty @這樣的佔位符,並進行直接搜索和替換,但您可以使用XmlTask。我們用它來改變的上下文根耳朵 - 它是不是很漂亮,由於XML命名空間廢話:

<xmltask source="META-INF/application.xml" report="true" failwithoutmatch="true" dest="META-INF/application.xml"> 
    <replace path="//*[local-name()='application']//*[local-name()='module'][@id='WebModule_XXXX']//*[local-name()='web']//*[local-name()='context-root']/text()" withText="${contextRoot}"/> 
</xmltask> 

但改變的事情,就像你想要的,我們現在使用Spring 3.1的配置文件是什麼,所有我們要做的就是切換環境配置文件在屬性文件中。我們有單獨的配置文件用於開發,automatic-uat,qa &生產。

+0

也許不是很漂亮,但比我的建議更強大,所以+1 –

相關問題