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