蚂蚁组件 axure 蚂蚁_蚂蚁属性细微差别
螞蟻組件 axure 螞蟻
每隔一段時間,我會想起Ant屬性的一些細微差別 ,一旦忘記它們,在與Ant交互時會引起混亂。 特別是, Ant屬性 通常是不可變的 (不包括Ant 1.8以來的局部屬性 ),并且在其第一次設置時“永久”設置的事實可能會導致稍微令人驚訝的結果。
《 螞蟻手冊 》的屬性部分指出:“通常無法更改屬性值,一旦設置了屬性,大多數任務將不允許修改其值。” 該手冊中有關“ 屬性”任務的部分補充說:“屬性是不可變的:誰先設置屬性,誰會先凍結該屬性,然后再進行其余構建; 它們絕對不是變量。”
屬性定義的順序會影響其設置。 通常,一旦設置了屬性,以后就無法在同一構建文件或被調用的構建文件中重新定義,則無法更改其值。 此外,還有一組已經定義的屬性,這些屬性通常無法在Ant構建文件中重新定義。 這些包括Java System屬性和內置的Ant屬性 。
盡管在Ant構建文件中定義的屬性不能覆蓋默認的Ant內置屬性或Java系統屬性的值,但是通常可以使用Ant啟動器上的-D選項設置這些屬性名稱的這些值。 但是,即使使用-D選項,也無法重置其中的少數。 例如,即使通過-D選項作為參數傳遞,也無法從Ant構建文件的路徑和名稱更改ant.file 。 當然,這可能也是一樣,因為似乎沒有充分的理由假裝Ant構建文件不是實際的文件。
為了演示上述Ant屬性解析的“規則”,可以使用以下簡單的Ant構建文件。
build.xml在Ant中顯示屬性
<project name="Project" default="showProperties" basedir="."><property environment="env"/><target name="showProperties"><!-- Java System Properties --><echo message="java.home: ${java.home}" /><echo message="user.home: ${user.home}" /><!-- Custom Properties --><echo message="name.last: ${name.last}" /><echo message="name.first: ${name.first}" /><!-- Ant Built-in Properties --><echo message="ant.file: ${ant.file}" /><echo message="ant.version: ${ant.version}" /><echo message="ant.java.version: ${ant.java.version}" /></target></project>在此示例中,有幾個Java系統屬性,幾個定制屬性和一些Ant內置屬性。 這些使我可以輕松地演示如何覆蓋或不覆蓋屬性。 下一個屏幕快照顯示了屬性的“默認”設置,沒有被覆蓋。 根本沒有定義兩個自定義變量,但是其他兩個(Java系統和Ant內置屬性)具有為Ant構建自動設置的值。
下一個屏幕快照顯示了嘗試通過-D參數傳遞為構建中使用的屬性提供值的嘗試。 如示例所示,即使系統屬性和Ant內置屬性也可以使用-D屬性設置覆蓋,但ant.file屬性不會被覆蓋。
指定Ant文件中使用的屬性的一種常見方法是使用Property任務在Ant構建文件中指定它們。 下一個代碼清單將內部定義的屬性添加到上面顯示的文件中。
build.xml在內部定義屬性
<project name="Project" default="showProperties" basedir="."><property environment="env"/><property name="user.home" value="/bin" /><property name="java.home" value="java" /><property name="name.last" value="Flintstone" /><property name="name.first" value="Fred" /><property name="ant.file" value="text.txt" /><property name="ant.version" value="1.8." /><property name="ant.java.version" value="6" /><target name="showProperties"><!-- Java System Properties --><echo message="java.home: ${java.home}" /><echo message="user.home: ${user.home}" /><!-- Custom Properties --><echo message="name.last: ${name.last}" /><echo message="name.first: ${name.first}" /><!-- Ant Built-in Properties --><echo message="ant.file: ${ant.file}" /><echo message="ant.version: ${ant.version}" /><echo message="ant.java.version: ${ant.java.version}" /></target></project>下一個屏幕快照顯示了運行此Ant文件時沒有-D參數提供的任何屬性。 請注意,內部規范成功設置的唯一屬性是自定義屬性。 Java系統屬性和內置的Ant屬性不受內部設置屬性的影響。
通常,Ant的屬性是不可變的,這具有很多優點。 但是,當僅僅因為在一個特定的Ant構建文件(或該構建文件引用的屬性文件)中聲明了一個屬性而實際上是為該屬性設置了該屬性的值時,一定要謹慎。 如果該屬性已在其他位置設置,則本地重新定義該屬性的嘗試只會錯誤地發布該屬性的值,而該值實際上并不適用。
翻譯自: https://www.javacodegeeks.com/2013/08/ant-properties-nuances.html
螞蟻組件 axure 螞蟻
總結
以上是生活随笔為你收集整理的蚂蚁组件 axure 蚂蚁_蚂蚁属性细微差别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓3d电影播放软件哪个好(安卓3d电影
- 下一篇: debian linux教程(debia