如何使用自定义ant规则正则表达式来更改属性文件中的属性

时间:2012-05-17 04:13:44

标签: android ant

在我的Android项目中,我在project.properties文件中设置了以下属性

proguard.config=proguard.cfg

我需要一个自定义宏来设置和取消设置此属性。

如何使用宏和正则表达式设置取消设置此属性? 我不清楚的两件事是如何将其设置为空属性值。将 那只是proguard.config = 或proguard.config =''

执行此操作的宏是什么?

 <macrodef name="turn-on-proguard">
    <sequential>    
       <replaceregexp file="./project.properties"
                            match='proguard.config="(.*)"'
                            replace='proguard.config=proguard.cfg'
                            byline="false">         
        </replaceregexp>
    </sequential>
</macrodef>



 <macrodef name="turn-off-proguard">
    <sequential>    
       <replaceregexp file="./project.properties"
                            match='proguard.config="(.*)"'
                            replace='proguard.config='
                            byline="false">         
        </replaceregexp>
    </sequential>
</macrodef>

这会有用吗?更新。 turn-proguard-off什么也没做。

1 个答案:

答案 0 :(得分:0)

您的解决方案对我来说非常不清楚。你为什么不逃脱点角色?为什么在正则表达式中使用引号和分组? 这是工作脚本:

<macrodef name="turnonproguard">
    <sequential>    
       <replaceregexp file="project.properties"
                match='proguard\.config=.*'
                replace='proguard.config=proguard.cfg'
                byline="false"/>
    </sequential>
</macrodef>

<macrodef name="turnoffproguard">
    <sequential>    
       <replaceregexp file="project.properties"
                match='proguard\.config=.*'
                replace='proguard.config='
                byline="false"/>
    </sequential>
</macrodef>

<target name="on">
    <turnonproguard/>
</target>

<target name="off">
    <turnoffproguard/>
</target>