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

时间:2016-12-30 10:41:37

标签: java gradle checkstyle

你可以看到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

```

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

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

3 个答案:

答案 0 :(得分:5)

可以通过以下方式解决错误:

ignoreFailures = false

对于警告,不可能来执行此操作,请参阅this票证。

从旧的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")
            }
        }
    }
}

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

答案 1 :(得分:4)

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

<property name="severity" value="error"/>

答案 2 :(得分:0)

很抱歉,我在尝试实现相同目标时偶然发现了这一点。原来,这已经实现,但是需要进行微小的配置更改。

因此,对于将来的冒险之旅,请在您的build.gradle中选择以下内容:

checkstyle {
  ignoreFailures = false
  maxWarnings = 0
}

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