为什么我没有使用lint-cleaner-plugin这个东东太老了,好久没更新,所以在使用的时候有一些限制:
1.删除layout资源的时候,有一些会直接删除layout 中的一行,而不是整个文件。
2.删除drawable.xml的时候,同样有这个问题。
3.只支持过滤单个文件,而不支持过滤文件中的一行。(strings.xml中的一个string没办法过滤)
为什么没有使用android studio 2.1版本之后加入的自动删除资源功能。
android studio 2.1之后的版本也增加了自动删除资源的功能。但是不支持设置过滤内容,而且貌似library中的资源无法删除,所以还是不符合我的要求。
如何使用:
1.添加依赖
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.github.xiepengchong:lint-cleaner-plugin:1.0.2' //1.0.2版本存在excluedeLine过滤不生效的bug,1.0.3修复
classpath 'com.github.xiepengchong:lint-cleaner-plugin:1.0.3'}
2.添加plugin(如果在Library需要执行该功能的话,需要在Library的build.gradle中加入这一条)
apply plugin: 'com.droidtitan.lintcleaner'
3.配置过滤内容,及编译名字
lintCleaner {
// 下面的文件名不进行check,制定文件名,包含后缀
excludeFile = ['activity_animated_demo_layout.xml','address_logo.png']
// 下面的字符串内容不进行行删除,可以制定color,string,和array的key值
excludeLine = ['color_f4f4f4','dispatch_driverarrive_desc','LoginCommitLayout']
// 是否忽略strings.xml,dimens.这些按照行删除的内容,默认false,如果没有特殊需求,不需要设置。
ignoreResFiles = true
// 最终lint生成的文件名,如果在Library中,需要把整体路径写上(Eg:lintXmlFilePath ='base/build/outputs/lint-results-debug.xml')
lintXmlFilePath = 'build/outputs/lint-results-debug.xml'
}
然后我们就可以在gradle编译的时候执行下面的命令就可以了。
./gradlew lintClean