gpt4 book ai didi

java - 有没有办法只对 VCS 中有更改的文件运行 checkstyle?

转载 作者:太空狗 更新时间:2023-10-29 14:22:09 27 4
gpt4 key购买 nike

<分区>

我最近开始帮助一个年轻的团队改进他们的开发实践,并希望他们在每次提交之前运行 checkstyle。不幸的是,他们的代码充满了错误,唯一可扩展的实现方式是每次对一小部分文件运行 checkstyle。

从策略上讲,我只想在 VCS 中修改过的那些文件上运行 checkstyle。我写了一个 Gradle 脚本来实现这一点,但它似乎不起作用。有没有人有关于如何实现这一目标的提示?

apply plugin: 'checkstyle'

def getChangedFiles = { ->
try {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'diff', '--name-only'
standardOutput = stdout
}
return stdout.toString().trim().split("\n")
}
catch (ignored) {
return null;
}
}

task checkstyle(type: Checkstyle) {
configFile file("${project.rootDir}/quality/checkstyle/uncommon-checkstyle.xml")
configProperties = [
'checkstyle.cache.file': rootProject.file('build/checkstyle.cache'),
'checkstyleSuppressionsPath': file("${project.rootDir}/quality/checkstyle/suppressions.xml").absolutePath
]
source 'src'
String[] split = getChangedFiles()
for (int i=0; i<split.length; i++){
include split[i]
println split[i]
}
exclude '**/build/**' // Exclude everything inside build folders.
exclude '**/test/**' // Exclude tests
exclude '**/androidTest/**' // Exclude android test files.
ignoreFailures = false // Don't allow the build to continue if there are warnings.
classpath = files()
}

checkstyle {
toolVersion '6.19' // set Checkstyle version here
}

打印命令显示 getChangedFiles() 正在返回正确的文件集,我已经检查以确保包含的文件也准确无误,但 checkstyle 本身似乎并未在这些文件上运行。

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