2015-03-11 2 views
5

Я пытаюсь использовать плагин findbugs в моем файле build.gradle, чтобы вывести из строя личную сборку разработчиков, но она не работает. Хотя плагин создает отчеты, сборка не сработает. Я попытался «сыграть» с ignoreFailures, но это тоже не получилось.Findbugs Gradle плагин не подведет строение

Я использовал этот ответ How to write a customized gradle task to not to ignore Findbugs violations but fail after the analysis is completed, и это сработало, но я не люблю разбирать отчеты, и это похоже на взлом.

Нет ли простого способа (например, «ignoreFailures» должен быть), чтобы сбой с помощью findbugs не выполнялся? Есть ли еще одна подходящая основа для этого?

Добавлен build.gradle файл:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath "com.bmuschko:gradle-tomcat-plugin:2.1" 
    } 
} 

subprojects { 
apply plugin:'java' 
apply plugin:'eclipse' 


apply plugin: "findbugs" 
findbugs { 
    reportsDir = file("$project.buildDir/findbugsReports") 
    effort = "max" 
    reportLevel = "high" 
} 

build.dependsOn 'check' 

sourceCompatibility = JavaVersion.VERSION_1_8 
targetCompatibility = JavaVersion.VERSION_1_8 

repositories { 
    maven { url "http://repo.maven.apache.org/maven2" } 
} 

dependencies { 

    compile group: 'javax.validation', name: 'validation-api', version:'1.1.0.Final' 
    compile group: 'org.springframework.security', name: 'spring-security-web', version: "${VERSION_SPRING_SECURITY}" 
    compile group: 'org.springframework.security', name: 'spring-security-config', version: "${VERSION_SPRING_SECURITY}" 

    // Spring dependency injection container: 
    compile (group: 'org.springframework', name: 'spring-context', version:"${VERSION_SPRING}") { 
     exclude(module: 'commons-logging') 
    } 

    compile group: 'javax.inject', name: 'javax.inject', version:'1' 
    compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.10' 
    runtime group: 'org.slf4j', name: 'jcl-over-slf4j', version:'1.7.10' 
    runtime group: 'org.slf4j', name: 'slf4j-log4j12', version:'1.7.10' 
    runtime group: 'org.aspectj', name: 'aspectjrt', version:"${VERSION_ASPECTJ}" 
    runtime group: 'org.aspectj', name: 'aspectjweaver', version:"${VERSION_ASPECTJ}" 

    testCompile group: 'org.springframework', name: 'spring-test', version:"${VERSION_SPRING}" 
    testCompile group: 'junit', name: 'junit', version:'4.12' 



    compile group: 'commons-pool', name: 'commons-pool', version:'1.6' 

    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version:'2.5.1' 
    compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-mrbean', version:'2.5.1' 

} 
} 

project(':server:application'){ 
dependencies { 

    compile(project(':server:services')) { 
     exclude(module: ':server:data-access') 
    } 
    compile group: 'org.springframework', name: 'spring-webmvc', version:"${VERSION_SPRING}" 
    compile project(':server:dto'), project(':server:utils'), project(':server:model') 
} 
} 
+0

Findbugs не терпит неудачу. даже если ignoreFailures = false (хотя его значение по умолчанию) – Rivi

+0

Не могли бы вы привести пример, который воспроизводит проблему? – Opal

+0

Добавлен файл build.gradle – Rivi

ответ

2

Ну, если находками вопросы FindBugs не являются «высоким приоритетом» ошибки, они не будут сообщаться как вы явно установки:

reportLevel = "high" 

Gradle documentation ясно о том, что:

приоритет порог для сообщений об ошибках. Если установлено значение «low», сообщаются все ошибки. Если установлено значение «средний» (по умолчанию), сообщаются сообщения о среднем и высоком приоритете. Если установлено значение high, сообщаются только сообщения с высоким приоритетом.

Итак, моя рекомендация состоит в том, чтобы сделать это в вашей конфигурации FindBugs:

ignoreFailures = false 
reportLevel = "low" 

Это делает работу для меня.

Смежные вопросы