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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ant编译重设property的值

發(fā)布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ant编译重设property的值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
引自:http://qiang106.iteye.com/blog/2097833

ant已經(jīng)有N多種替代方案了,但也不是ant就沒有可用之外了,它的跨平臺性還是有很大的優(yōu)勢。

android就經(jīng)常是使用ant來構(gòu)建的。

?

ant腳本中property默認是不能重新設置值的,第一次定義之后,在整個project執(zhí)行過程中是不會再變的。

最簡單的定義方式如下:

?

Java代碼
  • <property?name="build.target"?value="release"?/>??
  • 但是在我們的編譯腳本中經(jīng)常有可能需要用到可以變的值,另一種值設值方式可以滿足我們:

    ?

    Java代碼
  • <var?name="build.target"?value="release"?/>??
  • 定義變量可以隨時重新設值,但是又有一點,如果我們需要使用condition來條件設值的時候,不好意思,不支持var。?

    Java代碼
  • <condition?property="BATCH_INPUT"?value="${env.BATCH_INPUT}"?else="${local.BATCH_INPUT}">??
  • ??????????<isset?property="env.BATCH_INPUT"?/>??
  • </condition>??
  • ?

    直接點,要property支持重設,也不是不可能,在jdk 1.6之后,使用contrib可以支持,需要定義一個重設的腳本,需要下ant-contrib-0.6.jar到ant的lib目錄下

    Java代碼
  • <scriptdef?name="propertyreset"?language="javascript"??
  • ????????description="Allows?to?assign?@{property}?new?value">??
  • ????????<attribute?name="name"/>??
  • ????????<attribute?name="value"/>??
  • ????????project.setProperty(attributes.get("name"),?attributes.get("value"));??
  • </scriptdef>??
  • 同時增加以下一行聲明:

    Xml代碼
  • <taskdef?resource="net/sf/antcontrib/antlib.xml"?/>??
  • ?

    用法如下:

    Java代碼
  • <propertyreset?name="chanel"?value="${chanelname}"/>??
  • ?這樣子就可以直接使用新值了。

    本帖完整的示例:

    ?

    Xml代碼
  • <project?name="test"?default="testA"?basedir=".">???
  • ??????
  • ?????<!--必須定義這個標簽-->??
  • ????<taskdef?resource="net/sf/antcontrib/antlib.xml"?/>???
  • ??????
  • ????<scriptdef?name="propertyreset"?language="javascript"??
  • ????????????description="Allows?to?assign?@{property}?new?value">??
  • ??????????<attribute?name="name"/>??
  • ????????????<attribute?name="value"/>??
  • ????????project.setProperty(attributes.get("name"),?attributes.get("value"));??
  • ????????</scriptdef>??
  • ??
  • ??
  • ????????<property?name="nameA"?value="A"/>??
  • ????????<!--重新定義property,不起作用-->??
  • ????????<property?name="nameA"?value="B"/>??
  • ??????????
  • ????????<var?name="nameB"?value="A"/>??
  • ????????<!--var可以隨意設置值-->??
  • ????????<var?name="nameB"?value="B"/>??
  • ??????????
  • ??????????
  • ????????<property?name="nameC"?value="A"/>??
  • ????????<!--使用自定義的腳本重新設置值-->??
  • ????????<propertyreset?name="nameC"?value="B"/>??
  • ??????????
  • ??????
  • ??????
  • ???<target?name='testA'>???
  • ?????<echo>${nameA}</echo>??
  • ?????<echo>${nameB}</echo>???
  • ?????<echo>${nameC}</echo>????
  • ???</target>???
  • </project>??
  •  《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的ant编译重设property的值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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