在Gradle中替换xmltask

Adr*_*rea 1 ant gradle xmltask android-studio

我正在尝试将我的项目从Eclipse + Ant迁移到Android Studio + Gradle.所有这些都有针对不同应用商店的特殊版本,具有不同的跟踪ID,ad id等.在Eclipse上,我有一个ant xmltask,它在各自的xml文件中设置了这个id的值.比如我有:

<xmltask source="res/values/admob.xml" dest="res/values/admob.xml">
<replace path="//string[@name='bottom_ad_unit_id']/text()" withText="${bottomAdUnitId}"/>
</xmltask>
Run Code Online (Sandbox Code Playgroud)

对于每个商店,我只需要使用正确的id设置bottomAdUnitId并调用运行任务.

在Gradle中是否有类似的东西可以让我做同样的事情?

Mar*_*ira 5

您可以使用Gradle的Ant支持.

ant.taskdef(name: 'xmltask', classpath: 'path/to/xmltask.jar', classname: 'com.oopsconsultancy.xmltask.ant.XmlTask') 

ant.xmltask(source: 'res/values/admob.xml', dest: 'res/values/admob.xml') {
    replace(path: '//string[@name='bottom_ad_unit_id']/text()', withText: "${bottomAdUnitId}")
}
Run Code Online (Sandbox Code Playgroud)