以module形式,用groovy开发gradle插件时,会发现自己写的插件总是报 Class ‘xxx’ already exists的红色警告,虽然并不影响插件的使用和调试,但是就很烦:
这个红色警告产生的原因,应该是因为在module编译后,会在相应build/classes/groovy目录下生成对应groovy类的java类:
而IDE似乎无法处理该生成目录。
在stackoverflow上,有针对intellij类似问题的解决方法,就是将相应目录标记为exclude。但我发现在androidstudio中这样做没啥用。
解决方案
所以,可以在相应module的build.gradle增加一个如下的task:
group name可随便改,这里的uploadRepo是我用于上传repo的一个task,会根据是开发还是发布自行判断上传本地还是上传远程repo,可根据需要自行更改上传task。
这样在开发gradle插件时,每次修改更新插件后,直接执行该task:
就可以自动编译并上传repo,之后直接清空对应module的build目录。从而解决该红色警告。