如何覆写默认detekt.yml?如何仅覆写部分detekt配置属性?
嗨,我来帮你搞定detekt配置覆写的问题,这两个需求其实都很容易实现,咱们一步步拆解:
1. 如何覆写默认的detekt.yml配置文件?
- 第一步,先创建一个自定义的配置文件,比如叫
custom-detekt.yml,把你想要完全替换的规则或全局配置写进去。 - 然后在运行detekt的时候,通过命令行参数指定这个自定义文件,就能直接覆盖默认的
default-detekt-config.yml:detekt --config custom-detekt.yml - 要是你用Gradle或Maven集成detekt,直接在构建脚本里指定配置文件路径就行。比如Gradle中可以这么写:
detekt { config = files("custom-detekt.yml") }
2. 能否仅覆写部分配置属性,保留默认配置的大部分内容?
当然可以!detekt天生支持分层配置合并,你完全不需要复制整个默认配置,只需要在自定义文件里写你要修改的部分,剩下的自动继承默认配置的原有属性。具体操作如下:
- 先只在
custom-detekt.yml里写需要调整的规则,比如你只想修改naming模块下functionName的命名规则,那配置文件就这么写:naming: functionName: active: true pattern: "^[a-z][a-zA-Z0-9]*$" - 运行detekt的时候,同时指定默认配置和自定义配置(注意顺序:自定义配置要放在后面,这样它会覆盖默认配置里的对应项):
命令行方式:
Gradle集成的话,配置示例:detekt --config default-detekt-config.yml --config custom-detekt.ymldetekt { config = files("$projectDir/config/detekt/default-detekt-config.yml", "custom-detekt.yml") } - 小提示:如果你记不清默认配置的结构,可以先导出一份本地版参考,命令是:
执行后会生成detekt --generate-configdefault-detekt-config.yml,你可以照着里面的结构来写自定义配置。
内容的提问来源于stack exchange,提问作者Juergen Zimmermann
相关产品推荐
相关产品推荐

