2011-07-06 57 views
1

我試圖在Android應用程序中配置版本號的自動增量。 我已經配置了Ant任務來完成文件的簽出,然後自動增加帶有版本值的字符串,然後在TFS系統中自動執行簽入。因此,這test.properties文件有這個contetnt:Ant將特定字符串值從一個文件傳遞到另一個文件

versionCode="1" 

自動增量做這個任務:

<propertyfile file="${basedir}/src/test.properties"> 
    <entry key="versionCode" value="1" type="int" operation="+" /> 
</propertyfile> 

我將如何配置更換此字符串的值:安卓的versionCode = 「1」,位於在目標文件androidmanifest.xml中?

回答

1

我想你可以使用Ant中ReplaceRegExp task:在一個文件替換模式替換定正則表達式的發生或文件集

基於目錄的任務。

它可能是這個樣子:

<replaceregexp file="${src}/androidmanifest.xml" 
      match="android:versionCode=&quot;[0-9]+&quot;" 
      replace="android:versionCode=&quot;${versionCode}&quot;" 
/> 

build.number屬性可以通過運行這個任務之前,在屬性文件中讀取來獲得。

+0

我得到了增加的版本只有一次,以後該值已經在我的build_info.properties唯一改變。這是build_info.properties的內容:build.major.number = 02 build.revision.number = 06 build.minor.number = 00 – mirakl

0

香草螞蟻,需要的話,你可以使用具有propertyfiletemplate沒有螞蟻插件溶液=

f.e. named props.txt 
    ... 
    android:[email protected]@ 
    ... 

,後來使用屬性$ {的versionCode}通過您的工作流程設置
並創建一個從複製+嵌套filterset模板propertyfile =

<!-- somewhere set in your workflow maybe via userproperty -DversionCode=42 --> 
    <property name="versionCode" value="42"/> 
... 
    <copy file="props.txt" todir="/some/path" overwrite="true"> 
    <filterset> 
    <filter token="versionCode" value="${versionCode}"/> 
    </filterset> 
    </copy> 

/some/path/props.txt會有=

... 
android:versionCode=42 
... 

看到Ant Manual on filtersets

+0

感謝它爲我工作。我只是改變了這裏的值match =「android:versionCode = " [0-9] + "」set to match =「android:versionCode = "(。*)"」 – mirakl

相關問題