ant编译重设property的值
生活随笔
收集整理的這篇文章主要介紹了
ant编译重设property的值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引自:http://qiang106.iteye.com/blog/2097833
<property?name="build.target"?value="release"?/>?? <var?name="build.target"?value="release"?/>?? <condition?property="BATCH_INPUT"?value="${env.BATCH_INPUT}"?else="${local.BATCH_INPUT}">?? ??????????<isset?property="env.BATCH_INPUT"?/>?? </condition>?? <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>?? <taskdef?resource="net/sf/antcontrib/antlib.xml"?/>?? <propertyreset?name="chanel"?value="${chanelname}"/>?? <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>??
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
ant已經有N多種替代方案了,但也不是ant就沒有可用之外了,它的跨平臺性還是有很大的優勢。
android就經常是使用ant來構建的。
?
ant腳本中property默認是不能重新設置值的,第一次定義之后,在整個project執行過程中是不會再變的。
最簡單的定義方式如下:
?
Java代碼但是在我們的編譯腳本中經常有可能需要用到可以變的值,另一種值設值方式可以滿足我們:
?
Java代碼定義變量可以隨時重新設值,但是又有一點,如果我們需要使用condition來條件設值的時候,不好意思,不支持var。?
Java代碼?
直接點,要property支持重設,也不是不可能,在jdk 1.6之后,使用contrib可以支持,需要定義一個重設的腳本,需要下ant-contrib-0.6.jar到ant的lib目錄下:
Java代碼同時增加以下一行聲明:
Xml代碼?
用法如下:
Java代碼?這樣子就可以直接使用新值了。
本帖完整的示例:
?
Xml代碼總結
以上是生活随笔為你收集整理的ant编译重设property的值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WCF与 Web Service的区别
- 下一篇: log4j配置及正确使用方式