我正在尝试通过 ant 脚本(在构建中.xml)在编译时更改应用程序名称。应用程序名称存储在字符串.xml中。以下是一段代码,
<target name="changeName">
<property
name="applicationName"
value="30004" />
<replaceregexp
file="C:Users<user-name>gitappnameresvaluesstrings.xml"
match='<string name="app_name"<test</string<'
replace="1${applicationName}2"
byline="true"/>
</target>
但它不会更改字符串中的名称,.xml。有人可以纠正我做错了什么吗?另外,请让我知道如何通过相对路径实现类似的操作。
谢谢
编辑:以下是需要通过上面提到的 ant 脚本进行更改的 xml
<string name="app_name">Test Application</string>
以下替换将更改包含此属性的任何<string>
元素的"app-name"属性:
<replaceregexp
file="C:Users<user-name>gitappnameresvaluesstrings.xml"
match="<string name=".+""
replace="<string name="${applicationName}""
/>
若要使自己免于转义代码地狱,可能需要在运行替换之前使用 CDATA 设置一些属性。 通过这种方式,您可以清楚地看到正则表达式模式:
<property name="regex.match"><![CDATA[<string name=".+"]]></property>
<property name="regex.replace"><![CDATA[<string name="${applicationName}"]]></property>
<replaceregexp
file="C:Users<user-name>gitappnameresvaluesstrings.xml"
match="${regex.match}"
replace="${regex.replace}"
/>