使用包含引号和等号的字符串从TeamCity调用Ant ReplaceRegexp
我有一个Ant文件,其中包含TeamCity配置使用的目标。我为此定义了一个使用replaceregexp的目标:使用包含引号和等号的字符串从TeamCity调用Ant ReplaceRegexp,regex,ant,teamcity,Regex,Ant,Teamcity,我有一个Ant文件,其中包含TeamCity配置使用的目标。我为此定义了一个使用replaceregexp的目标: 我需要替换targetfile中已经包含一组双引号的字符串;具体来说,我需要将minlevel=“Trace”替换为minlevel=“Warn”。在TeamCity中,我使用以下命令调用Antfile: -Doriginalstring=minlevel=“跟踪” -Dupdatedstring=minlevel=“警告” 但它忽略了双引号。 我肯定有一些我不理解的转义字符
我需要替换targetfile中已经包含一组双引号的字符串;具体来说,我需要将minlevel=“Trace”替换为minlevel=“Warn”。在TeamCity中,我使用以下命令调用Antfile:
-Doriginalstring=minlevel=“跟踪”
-Dupdatedstring=minlevel=“警告”
但它忽略了双引号。
我肯定有一些我不理解的转义字符组合。
TeamCity的正确称呼方式是什么?
谢谢-尝试用双引号括起属性值,并用反斜杠转义文字引号 -Doriginalstring=“minlevel=\”Trace\“”-Dupdatedstring=“minlevel=\”Warn\“” 类似地,对于包含空格的值: -Doriginalstring=“minlevel=\”Trace\”db=”M1Auth\”-Dupdatedstring=“minlevel=”Warn\”db=”M1Auth\”
另一种解决方案是将属性保存在文件中,并通过
-propertyfile
将其传递给ant
命令(请参阅任务和)。谢谢,这完全符合我的需要。现在我有第二个相关问题。我需要更新的另一个字符串有一个嵌入的空格:-Doriginalstring=minlevel=“Trace”db=“M1Auth”-Dupdatedstring=minlevel=“Warn”db=“M1Auth”
我试图用反斜杠转义空格,但它仍然被视为两个独立的参数。有什么建议吗?@TomT这是同样的想法(答案更新)。你需要把整个值(包括空格)都用外引号括起来,当然还要对内引号进行转义,这就是我之前的想法和尝试。然而,嵌入的空间被认为是一个新的蚂蚁目标被引用的迹象。下面是我要传递的内容:-Doriginalstring=“minlevel=\”Trace\“writeTo=”AuthLogDb\”-Dupdatedstring=“minlevel=\”Warn\“writeTo=”AuthLogDb\”
,下面是TeamCity所说的:Target“writeTo=”AuthLogDb““项目中不存在任何洞察?我非常感谢你的帮助!我不知道TeamCity配置如何调用ant
,以及ant
可执行文件如何准确处理这些属性值,但您可以尝试的一件事是从文件传递属性。
<replaceregexp
file="${targetfile}"
match="${originalstring}"
replace="${updatedstring}"
byline="true"
/>