我正在寻找一种方法来暂时禁止lint
错误或在特定日期或条件之后安排错误。
这里有一些背景信息:
我有一个Android应用程序,它被翻译成多种语言并且我已将其设置为lint
如果缺少翻译而失败并显示错误。显然这样做是为了使未翻译的琴弦不会逃到野外。
每当有新的string
资源时,它需要一段时间才能被翻译,在此期间lint
失败。
这可以被抑制,或者字符串可以被标记为不可翻译,但这样做的目的就是首先进行检查。
除了上下文之外,当特定设置为"临时"时,还有更多实例。我不想记得翻转每一个开关。
构建在CI服务器上,经常发布,并且这发生在任何人都能够暂时"忽略警告。 是否有一种自动化的方法可以确保在发布时不会忽略某些内容?
更新 自从提出这个问题以来,有人开发了一个能满足我的要求的图书馆:https://github.com/Stuie/papercut
答案 0 :(得分:3)
我不知道你何时去除/激活棉绒。但也许这会有所帮助:
您可以使用gradle脚本中的布尔值打开/关闭Lint:
android {
lintOptions {
if (lintOn){
checkReleaseBuilds true
abortOnError true
} else {
checkReleaseBuilds false
abortOnError false
}
}
}
将lintOn=false
添加到您的gradle.properties,否则gradle不会将其识别为变量。
现在您可以添加任务并使其在构建任务之前运行:
task preBuild << {
// do stuff to determin if lint should run
lintOn = true
}
build.dependsOn preBuild
在这个preBuild任务中,您现在可以实现一些代码来检查是否应该运行lint。
Here是任务可以做的一些很好的例子。