似乎TeamCity參數$ {build.counter}沒有在我們的ant build.xml中解析。我們有:build.xml中的TeamCity build.counter參數
<replaceregexp
file="AndroidManifest.xml"
match='android:versionCode="(.*)"'
replace='android:versionCode="${build.counter}"'
/>
這引發錯誤:
String types not allowed (at 'versionCode' with value '${build.counter}')
它看起來像它走的是參數 「$ {} build.counter」 作爲一個字符串。
使用另一個TeamCity整數參數代替$ {build.counter},例如$ {teamcity.build.id},可以正常工作。
有誰知道這可能是爲什麼?
更新
感謝Biswajit_86的答案。這裏也是我的related discussion with JetBrains:
你確定這個屬性解析所有?嘗試在此步驟之前添加' $ {build.counter} '。一個隨機nitpick:你的正則表達式替換不使用捕獲組引用,所以你的匹配模式不需要括號。 –
CAustin
@CAustin - 你是對的!這給了我「步驟2/2」echo $ {build.counter}「。那麼爲什麼這個屬性不會在其他人做的時候解決呢? –
說實話,我對TeamCity一無所知。這是你所有的財產來自哪裏,對嗎?它看起來像是哪個文件保存了這些屬性格式不正確,就好像它包含'build.counter = Step 2/2] echo $ {build.counter}'或類似的東西。 – CAustin