gradle checkstyle只是输出警告,但建立成功

sss*_*vip 5 java checkstyle gradle

如您所见,checkstyle警告,但这次的构建仍然成功。为什么?我希望失败。请帮忙。

D:\MyData\xxxx>gradle clean checkstyleMain
:clean
:compileJava
:processResources
:classes
:checkstyleMain
[ant:checkstyle] [WARN] D:\MyData\xxxx.java:218:18: Member name 'Aource' 
must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'. [MemberName]

BUILD SUCCESSFUL

Total time: 4.966 secs
Run Code Online (Sandbox Code Playgroud)

```

请参阅img:https//i.stack.imgur.com/7IbRM.jpg

参见checkstyle.xml:https : //i.stack.imgur.com/BE4An.jpg

xxS*_*rdy 14

很抱歉挖坟,但我只是在尝试实现同样的目标时偶然发现了这一点。事实证明,这现在已经实现,但需要一个微小的配置更改。

因此,对于任何未来的冒险在这里找到自己的方式:在您build.gradle的以下内容中:

checkstyle {
  ignoreFailures = false
  maxWarnings = 0
}
Run Code Online (Sandbox Code Playgroud)

这将导致您的构建因 Checkstyle 错误而失败。


小智 6

checkstyle 违规的默认严重性级别是警告。如果您希望构建失败,请将 checkstyle.xml 配置中的严重性值从警告更改为错误。如果存在违规,任何后续构建现在都将失败。

<property name="severity" value="error"/>
Run Code Online (Sandbox Code Playgroud)


Hra*_*sch 5

可以通过以下方法来解决错误:

ignoreFailures = false

对于警告,没有可能这样做,请参阅票证。

从其旧的Jira和新的GitHub问题评论中,有一种解决方法:

tasks.withType(Checkstyle).each { checkstyleTask ->
    checkstyleTask.doLast {
        reports.all { report ->
            def outputFile = report.destination
            if (outputFile.exists() && outputFile.text.contains("<error ")) {
                throw new GradleException("There were checkstyle warnings! For more info check $outputFile")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以答案是:默认情况下这是不可能的,并且仍然有打开的票证。如果您真的想要,可以尝试参与并进行修复,Gradle是开源的,它取决于开发人员:)