gpt4 book ai didi

android - Android Studio 的最小工作 SpotBugs 设置

转载 作者:可可西里 更新时间:2023-11-01 19:06:42 27 4
gpt4 key购买 nike

如何为 Android 设置 SpotBugs?

我尝试关注 official documentationgradle plugin 的那个,但针对 Android 的设置不完整且令人困惑,并且无法正常工作。

我尝试了以下设置。

build.gradle(项目):

buildscript {
repositories {
// ...
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
// ...
classpath "gradle.plugin.com.github.spotbugs:spotbugs-gradle-plugin:1.6.4"
}
}

build.gradle(应用程序):

//...
apply plugin: "com.github.spotbugs"

android {
// ...
sourceSets {
main {
java.srcDirs = ['src/main/java']
}
}
}

// ...

spotbugs {
toolVersion = "3.1.3"
ignoreFailures = true
reportsDir = file("$project.buildDir/findbugsReports")
effort = "max"
reportLevel = "high"
}

tasks.withType(com.github.spotbugs.SpotBugsTask) {
// What do I need to do here?
}

我尝试使用 ./gradlew spotbugsMain 运行它,但是缺少 gradle 任务。
我应该手动添加任务吗?我该怎么做?

您能否向我展示一个 Android 项目的最小工作设置示例?

最佳答案

我自己做了一些测试,我设法让它像这样工作:

1) 将 sourceSets 声明移到 android block 之外。将其留空,它仅用于生成 spotbugsMain 任务,不会影响全局 Android 构建。

android {
// ...
}

sourceSets {
main {
java.srcDirs = []
}
}

2) 保留您的 spotbugs block 并像这样配置 SpotBugsTask 任务:

tasks.withType(com.github.spotbugs.SpotBugsTask) {
classes = files("$projectDir.absolutePath/build/intermediates/classes/debug")
source = fileTree('src/main/java')
}

它将在 app/build/findbugsReports 中生成报告

重要:

它仅适用于 ./gradlew build 命令,./gradlew spotbugsMain 将不起作用,因为项目必须在此之前构建

您可以解决添加 assemble 依赖项的问题:

tasks.withType(com.github.spotbugs.SpotBugsTask) {
dependsOn 'assemble'
classes = files("$projectDir.absolutePath/build/intermediates/classes/debug")
source = fileTree('src/main/java')
}

关于android - Android Studio 的最小工作 SpotBugs 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52643805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com