我有以下在我的android应用
#MyAndroidApp/assets/app.properties
server=localhost
....
....
在构建应用程序时,我想将'server'的值从localhost更改为gradle.properties中定义的值。
'java'插件允许我这样做
processResources {
def serverHostName = project.hasProperty("serverhost") ? project.property("serverhost") : "localhost"
filter ReplaceTokens, tokens: [
"serverhost": serverHostName
]
}
同样,我认为我可以覆盖processDebugResources和processreleaseresource在Android,但不幸的是,这是不可能的。还有别的办法吗?
我检查了'productFlavors',但它需要定义整个新的项目结构,我想要的只是在这里改变一个属性。
由于我是gradle构建系统的新手,可能这不是最好的解决方案,但它对我有用:
defaultConfig {
...
applicationVariants.all { variant ->
def serverHostName = project.hasProperty("serverhost") ? project.property("serverhost") : "localhost"
variant.mergeAssets.doLast {
copy {
from("${projectDir}/src/main/assets") {
include "*.properties"
}
into("${buildDir}/assets/${variant.dirName}")
filter(ReplaceTokens, tokens: [
"serverhost": serverHostName)
])
}
}
}
}