我想在我的gradle项目中使用checkstyle插件,gradle文档说它会添加一些任务: https://docs.gradle.org/current/userguide/checkstyle_plugin.html
checkstyleMain, checkstyleTest, checkstyleSourceSet
我将此添加到我的app build.gradle文件中:
apply plugin: 'checkstyle'
我想从cmd运行gradle任务来执行代码样式检查,但是没有一个checkstyle任务。我输入以下内容检查了整个列表:
./gradlew tasks
我还尝试将checkstyle jar作为库依赖项添加到app模块。 任何人都可以告诉我我做错了什么,我怎么能得到我的checkstyle任务?
答案 0 :(得分:3)
嗯,checkstyle插件会在其他任务虚拟任务组中添加其任务。这些实际上是未已分配给任务组的任务。因此,只有在您运行./gradlew tasks --all
时才会显示它们(请注意--all
)。
完成 build.gradle :
apply plugin: 'java';
apply plugin: 'checkstyle';
然后运行./gradlew tasks --all
,输出:
<...snip...>
Other tasks
-----------
checkstyleMain - Run Checkstyle analysis for main classes
checkstyleTest - Run Checkstyle analysis for test classes
<...snip...>
如果您希望Checkstyle任务在没有--all
的情况下显示,请将它们分配给任务组,例如:
tasks.withType(Checkstyle).each {
it.group = 'verification'
}
答案 1 :(得分:1)
您还需要一个checkstyle配置文件,方法是在文档中放置一个default location或明确配置它。
例如:
checkstyle {
config = resources.text.fromFile('config/checkstyle.xml')
}
答案 2 :(得分:1)
看看使用Gradle构建的其他Android项目,运行checkstyle(感谢Square)我发现我需要为要显示的任务做一些设置。如果没有任务声明,我仍然会看到我的初始错误。
的build.gradle:
...
apply plugin: 'checkstyle'
...
checkstyle {
configFile rootProject.file('checkstyle.xml')
ignoreFailures false
showViolations true
toolVersion = "7.8.1"
}
task Checkstyle(type: Checkstyle) {
configFile rootProject.file('checkstyle.xml')
source 'src/main/java'
ignoreFailures false
showViolations true
include '**/*.java'
classpath = files()
}
// adds checkstyle task to existing check task
afterEvaluate {
if (project.tasks.getByName("check")) {
check.dependsOn('checkstyle')
}
}