![](/img/trans.png)
[英]How do I load Spring bean definitions from XML file specified in a properties file?
[英]How can I load variables from an XML properties file?
我目前正在從Ant中的XML文件加載屬性。 但是,我想在for循環中執行當前的ant任務,同時每次都為相同的一組屬性加載新的XML屬性文件。
我知道存在ant-contrib的var任務,該任務使我可以覆蓋屬性。 但是,我不確定如何將其與從XML文件加載屬性結合使用。 我首先考慮過遍歷所有屬性,然后使用propertyregex任務將它們設置為新值。 不幸的是,當我開始編寫代碼來實現此目的時,我意識到我仍然不知道如何實際加載屬性值,因為它們無法覆蓋先前設置的屬性。 (好吧,他們可以使用var任務,但是就我所知,這不能用於從XML文件加載。)
有任何想法嗎? 我理想中正在尋找的任務將被稱為
<xmlvars file="myxmlpropertyfile.xml"/>
就像
<xmlproperty file="myxmlpropertyfile.xml"/>
除了它會覆蓋變量之外。
<xmlproperty>
任務可以做的一件事是為每個屬性添加一個特定的值。 為什么不簡單地使用參數名稱作為前綴呢?
否則,您可以使用<echoproperties>
任務取消設置所有屬性,然后循環遍歷<for>
任務的下一個迭代。
這樣的東西,但是沒有經過測試:
<for param="my.directory">
<fileset dir="${some.directory}"/>
<sequential>
<xmlproperty file="@{my.directory}/myxmlpropertyfile.xml"
prefix="foo-fighters"/>
<blah, blah, blah/>
<for param="reset.var">
<echoproperty prefix=foo-fighters"/>
<sequential>
<var name="@{reset.var}"
unset="true"/>
</sequential>
</for>
</sequential>
</for>
基本上,您使用外部<for>
循環遍歷目錄,並使用<xmlproperty>
設置屬性名稱。 <blah blah blah/>
意味着要做你想做的。 然后,在轉到外部<for>
循環的下一個迭代之前,先執行內部 <for>
循環,該循環將取消設置先前在<xmlproperty>
任務中設置的所有變量。
訣竅是使用變量前綴,以確保容易找到變量名。 因此, foo-fighters
。
看來我應該能夠通過使用var任務的unset屬性來完成此任務。 會回報...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.