我正在使用輸入任務來收集特定的屬性值,我想將它們連接成一個引用我的屬性文件的屬性值。在Ant中,我如何動態地構建引用屬性文件的屬性?
我可以生成屬性的格式,但在運行時將它視爲字符串而不是屬性引用。
實施例的屬性文件:
# build.properties
# Some Server Credentials
west.1.server = TaPwxOsa
west.2.server = DQmCIizF
east.1.server = ZCTgqq9A
實施例建立的文件:
<property file="build.properties"/>
<target name="login">
<input message="Enter Location:" addproperty="loc" />
<input message="Enter Sandbox:" addproperty="box" />
<property name="token" value="\$\{${loc}.${box}.server}" />
<echo message="${token}"/>
</target>
當我打電話登錄並提供輸入值 「西」, 「1」,回聲將打印$ {西.1.server}但它不會從屬性文件中檢索屬性值。
如果我硬編碼消息中的屬性值:
<echo message="${west.1.server}"/>
則Ant會盡職盡責地檢索從屬性文件中的字符串。
我該如何讓Ant接受動態生成的屬性值並將其視爲要從屬性文件中檢索的屬性?
見螞蟻常見問題爲構建在現有屬性的新屬性=> http://ant.apache.org/faq.html#propertyvalue-as-name- for-property Ian的答案使用了propertycopy macrodef中提到的hack。 – Rebse 2014-09-04 22:42:54
查看https://github.com/apache/ant-antlibs-props查看道具antlib的來源 - 儘管build.xml不起作用,但../antunit文件夾中有一些例子可以幫助您。這裏有一個可能的下載=> http://www.java2s.com/Code/JarDownload/ant-props/ant-props-1.0Alpha.jar.zip - 否則搜索互聯網的那個罐子或使用nexus。道具antlib工作正常。 – Rebse 2014-09-04 22:51:20
感謝您的好鏈接,FAQ正是解決方案,從下載中抓取了.jar,並獲得了嵌套屬性,可以按需要工作! – AlwaysThinkin 2014-09-09 23:13:04