我在Android Studio中有一个android项目,我想将detekt用作静态代码分析器。我可以通过gradle任务运行detekt,并且可以使用Android运行配置在应用运行之前将其排队,但是如果任务返回错误代码,我似乎无法阻止它停止运行。
我已经在构建管道中从命令行运行了detekt,但是我希望开发人员也不能在开发计算机上运行它们。
最佳答案
原来的解决方案是在所有文件中添加gradle任务。就我而言,我需要为detekt添加一个顶级gradle文件。 'detekt.gradle'
然后在主gradle文件中
allprojects {
repositories {
google()
jcenter()
}
apply from: "$rootDir/detekt.gradle"
}
然后在每个模块gradle文件中放入:preBuild.dependsOn(detekt)
这使得每个模块的构建都首先运行detekt,如果detekt失败,构建将无法完成。