执行 Ant 'replaceregexp' 在我的本地计算机上正常,但在 Microsoft VSTS 上不起作用
Executing Ant 'replaceregexp' OK my local machine, but does not work on Microsoft VSTS
正在寻找有关 Ant 的帮助,特别是 'replaceregexp' 方法。感谢您的任何建议。
问题
我们正在使用 Ant 部署 XML 文件,需要在部署前删除某些行 XML。我们使用 Microsoft VSTS 作为我们的部署工具。
我们需要 Ant 扫描多个文件,并删除某些行。下面是我们需要分析删除的源码的一个小例子:
<classAccesses>
<apexClass>CaseEntitlementMilestoneCalc</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>CaseEntitlementMilestoneCalc_Test</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>CaseTriggerHandler</apexClass>
<enabled>true</enabled>
</classAccesses>
在本例中,我们要查找并删除XML的这一段:
<classAccesses>
<apexClass>CaseEntitlementMilestoneCalc_Test</apexClass>
<enabled>true</enabled>
</classAccesses>
我们在 Ant 中使用 'replaceregexp' 来执行此操作。这是我们为此编写的 Ant 代码:
<replaceregexp match="<classAccesses>\n(.*?)<apexClass>CaseEntitlementMilestoneCalc_Test<\/apexClass>\n(.*?)<enabled>(.*?)<\/enabled>\n(.*?)<\/classAccesses>" replace="" flags="gm" byline="false">
<fileset dir="${src.dir}/profiles" includes="**/*.profile" />
</replaceregexp>
当我通过终端在我的 Mac 上 运行 它工作正常,但是当我尝试在 VSTS 上 运行 它时,它不会执行 find/replace .以下是每个的调试日志:
我的Mac调试语句
[replaceregexp] Replacing pattern '<classAccesses>\n(.*?)<apexClass>CaseEntitlementMilestoneCalc_Test<\/apexClass>\n(.*?)<enabled>(.*?)<\/enabled>\n(.*?)<\/classAccesses>' with '' in '/Users/david.morris/DevWorkspace/R_Salesforce_Amey/src/profiles/FSL Mobile User.profile' with flags: 'gm'.
[replaceregexp] Found match; substituting
[replaceregexp] File has changed; saving the updated file
VSTS调试语句
fileset: Setup scanner in dir d:\a\s\src\profiles with patternSet{ includes: [**/*.profile] excludes: [] }
Replacing pattern '<classAccesses>\n(.*?)<apexClass>CaseEntitlementMilestoneCalc_Test<\/apexClass>\n(.*?)<enabled>(.*?)<\/enabled>\n(.*?)<\/classAccesses>' with '' in 'd:\a\s\src\profiles\AAD JIT Provisioning.profile' with flags: 'gm'.
No change made
问题
- 谁能看出我的 Regex 可以在我的本地计算机上运行但不能在 VSTS 上运行的任何原因?
- 还有其他更简单的方法吗?
谢谢!
尝试改用此代码:
<classAccesses>.* .*<apexClass>CaseEntitlementMilestoneCalc_Test<\/apexClass>.* .*<enabled>(.*?)<\/enabled>.* .*<\/classAccesses>
正在寻找有关 Ant 的帮助,特别是 'replaceregexp' 方法。感谢您的任何建议。
问题
我们正在使用 Ant 部署 XML 文件,需要在部署前删除某些行 XML。我们使用 Microsoft VSTS 作为我们的部署工具。
我们需要 Ant 扫描多个文件,并删除某些行。下面是我们需要分析删除的源码的一个小例子:
<classAccesses>
<apexClass>CaseEntitlementMilestoneCalc</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>CaseEntitlementMilestoneCalc_Test</apexClass>
<enabled>true</enabled>
</classAccesses>
<classAccesses>
<apexClass>CaseTriggerHandler</apexClass>
<enabled>true</enabled>
</classAccesses>
在本例中,我们要查找并删除XML的这一段:
<classAccesses>
<apexClass>CaseEntitlementMilestoneCalc_Test</apexClass>
<enabled>true</enabled>
</classAccesses>
我们在 Ant 中使用 'replaceregexp' 来执行此操作。这是我们为此编写的 Ant 代码:
<replaceregexp match="<classAccesses>\n(.*?)<apexClass>CaseEntitlementMilestoneCalc_Test<\/apexClass>\n(.*?)<enabled>(.*?)<\/enabled>\n(.*?)<\/classAccesses>" replace="" flags="gm" byline="false">
<fileset dir="${src.dir}/profiles" includes="**/*.profile" />
</replaceregexp>
当我通过终端在我的 Mac 上 运行 它工作正常,但是当我尝试在 VSTS 上 运行 它时,它不会执行 find/replace .以下是每个的调试日志:
我的Mac调试语句
[replaceregexp] Replacing pattern '<classAccesses>\n(.*?)<apexClass>CaseEntitlementMilestoneCalc_Test<\/apexClass>\n(.*?)<enabled>(.*?)<\/enabled>\n(.*?)<\/classAccesses>' with '' in '/Users/david.morris/DevWorkspace/R_Salesforce_Amey/src/profiles/FSL Mobile User.profile' with flags: 'gm'.
[replaceregexp] Found match; substituting
[replaceregexp] File has changed; saving the updated file
VSTS调试语句
fileset: Setup scanner in dir d:\a\s\src\profiles with patternSet{ includes: [**/*.profile] excludes: [] }
Replacing pattern '<classAccesses>\n(.*?)<apexClass>CaseEntitlementMilestoneCalc_Test<\/apexClass>\n(.*?)<enabled>(.*?)<\/enabled>\n(.*?)<\/classAccesses>' with '' in 'd:\a\s\src\profiles\AAD JIT Provisioning.profile' with flags: 'gm'.
No change made
问题
- 谁能看出我的 Regex 可以在我的本地计算机上运行但不能在 VSTS 上运行的任何原因?
- 还有其他更简单的方法吗?
谢谢!
尝试改用此代码:
<classAccesses>.* .*<apexClass>CaseEntitlementMilestoneCalc_Test<\/apexClass>.* .*<enabled>(.*?)<\/enabled>.* .*<\/classAccesses>