日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蚂蚁属性细微差别

發(fā)布時(shí)間:2023/12/3 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蚂蚁属性细微差别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

每隔一段時(shí)間,我會(huì)想起Ant屬性的一些細(xì)微差別 ,一旦忘記它們,在與Ant交互時(shí)會(huì)引起混亂。 特別是, Ant屬性 通常是不可變的 (不包括Ant 1.8版本的 局部屬性 ),并且在其首次設(shè)置時(shí)“永久”設(shè)置,這一事實(shí)可能會(huì)導(dǎo)致令人驚訝的結(jié)果。

《 螞蟻手冊(cè) 》的屬性部分指出:“通常無法更改屬性值,一旦設(shè)置了屬性,大多數(shù)任務(wù)將不允許修改其值?!?該手冊(cè)中有關(guān)“ 屬性”任務(wù)的部分補(bǔ)充說:“屬性是不可變的:誰先設(shè)置屬性,誰會(huì)先凍結(jié)該屬性,然后再進(jìn)行其余構(gòu)建; 它們絕對(duì)不是變量?!?

屬性定義的順序會(huì)影響其設(shè)置。 通常,一旦設(shè)置了屬性,以后就無法在同一構(gòu)建文件或被調(diào)用的構(gòu)建文件中重新定義,則無法更改其值。 此外,還有一組已經(jīng)定義的屬性,這些屬性通常無法在Ant構(gòu)建文件中重新定義。 這些包括Java System屬性和內(nèi)置的Ant屬性 。

盡管在Ant構(gòu)建文件中定義的屬性不能覆蓋默認(rèn)的Ant內(nèi)置屬性或Java系統(tǒng)屬性的值,但是通??梢允褂肁nt啟動(dòng)器上的-D選項(xiàng)設(shè)置這些屬性名稱的這些值。 但是,即使使用-D選項(xiàng),也無法重置其中的少數(shù)。 例如,即使通過-D選項(xiàng)作為參數(shù)傳遞,也無法從Ant構(gòu)建文件的路徑和名稱更改ant.file 。 當(dāng)然,這可能也是一樣,因?yàn)樗坪鯖]有充分的理由假裝Ant構(gòu)建文件不是實(shí)際的文件。

為了演示上述Ant屬性解析的“規(guī)則”,可以使用以下簡單的Ant構(gòu)建文件。

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>

在此示例中,有幾個(gè)Java系統(tǒng)屬性,幾個(gè)自定義屬性和一些Ant內(nèi)置屬性。 這些使我可以輕松地演示如何覆蓋或不覆蓋屬性。 下一個(gè)屏幕快照顯示了屬性的“默認(rèn)”設(shè)置,而不會(huì)被覆蓋。 根本沒有定義兩個(gè)自定義變量,但是其他兩個(gè)(Java系統(tǒng)和Ant內(nèi)置屬性)具有為Ant構(gòu)建自動(dòng)設(shè)置的值。

下一個(gè)屏幕快照顯示了嘗試通過-D參數(shù)傳遞為構(gòu)建中使用的屬性提供值的嘗試。 如示例所示,即使系統(tǒng)屬性和Ant內(nèi)置屬性也可以使用-D屬性設(shè)置覆蓋,但ant.file屬性不會(huì)被覆蓋。

指定Ant文件中使用的屬性的一種常用方法是使用Property任務(wù)在Ant構(gòu)建文件中指定它們。 下一個(gè)代碼清單將內(nèi)部定義的屬性添加到上面顯示的文件中。

build.xml在內(nèi)部定義屬性

<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>

下一個(gè)屏幕快照顯示了運(yùn)行此Ant文件時(shí)沒有-D參數(shù)提供的任何屬性。 請(qǐng)注意,內(nèi)部規(guī)范成功設(shè)置的唯一屬性是自定義屬性。 Java系統(tǒng)屬性和內(nèi)置的Ant屬性不受內(nèi)部設(shè)置屬性的影響。

通常,Ant的屬性是不可變的,這具有很多優(yōu)點(diǎn)。 但是,當(dāng)僅僅因?yàn)樵谝粋€(gè)特定的Ant構(gòu)建文件(或該構(gòu)建文件引用的屬性文件)中聲明了一個(gè)屬性而實(shí)際上是為該屬性設(shè)置了該屬性的值時(shí),一定要謹(jǐn)慎。 如果該屬性已在其他位置設(shè)置,則本地重新定義該屬性的嘗試只會(huì)錯(cuò)誤地發(fā)布該屬性的值,而該值實(shí)際上并不適用。

參考:來自JCG合作伙伴 Dustin Marx的Ant Properties Nuances , 來自“實(shí)際事件的啟發(fā)”博客。

翻譯自: https://www.javacodegeeks.com/2013/08/ant-properties-nuances.html

總結(jié)

以上是生活随笔為你收集整理的蚂蚁属性细微差别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。