我的Android应用程序中有以下内容
#MyAndroidApp/assets/app.properties
server=localhost
....
....
在构建应用时,我想更改服务器'从localhost到gradle.properties中定义的任何内容。
' java'插件允许我这样做
processResources {
def serverHostName = project.hasProperty("serverhost") ? project.property("serverhost") : "localhost"
filter ReplaceTokens, tokens: [
"serverhost": serverHostName
]
}
同样,我认为我可以覆盖Android中的processDebugResources和processReleaseResources但不幸的是它不可能。还有其他替代方式吗?
我检查过&product;' productFlavors'但它需要定义全新的项目结构,我想要的只是在这里更改一个属性。
答案 0 :(得分:3)
由于我是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)
])
}
}
}
}