ANT可以更改XML文件中的值嗎?ANT可以更改XML文件中的值嗎?
我正在研究一個Java,Spring系統和XML文件,我們有像服務器名稱,用戶名,密碼這樣的東西,我們也在推廣這個系統。我想讓ANT腳本詢問SA的服務器名稱,用戶名,然後替換XML文件中的值。
ANT可以更改XML文件中的值嗎?ANT可以更改XML文件中的值嗎?
我正在研究一個Java,Spring系統和XML文件,我們有像服務器名稱,用戶名,密碼這樣的東西,我們也在推廣這個系統。我想讓ANT腳本詢問SA的服務器名稱,用戶名,然後替換XML文件中的值。
您可能還會考慮從PropertyPlaceholderConfigurator中加載Spring xml文件中的屬性。然後,您可以將您的屬性保存在標準的Java .properties文件中,然後進行編輯,無論您是通過層次提升項目的時間還是想要的。這裏有一箇中途體面的例子:example
我曾經擁有像@ 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 &生產。
也許不是很漂亮,但比我的建議更強大,所以+1 –
你可以使用ant過濾器,如Guillaume Polet評論所示。我遵循同樣的方式解決了我的問題。有關更多詳細信息,請參閱https://ant.apache.org/manual/Tasks/filter.html。
這對於Spring代碼來說非常棒,但對於我的Log4j.xml文件更改如何。 – SJS
啊,所以比春天還要多。在這種情況下,我將爲XmlTask答案添加一個+1。我也使用過這個,並取得了一些成功。我將補充一點,xmltask還允許您預定義XML塊並通過ID引用它們,以便您可以構建與每個層相關的XML塊集合,然後引用您想要部署的塊。 – David