使用android gradle插件3.4.0定义Checkstyle Task

时间:2019-04-18 08:59:55

标签: android android-gradle android-gradle-3.4.0

我将build.gradle文件升级为带有gradle 3.4.0的android gradle插件5.11

我的build.gradle

apply plugin: 'com.android.application'
apply plugin: 'checkstyle'

android {
    compileSdkVersion 28
    buildToolsVersion buildVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "myapp"
        minSdkVersion 21
        targetSdkVersion 28
        versionName "5.20.0"
        versionCode 520

    }

    dataBinding {
        enabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {    
    implementation "com.android.support:support-v4:$supportLibVersion"
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

task checkstyle(type: Checkstyle) {
    source 'src/'
    include '**/*.java'
    exclude '**/gen/**'
    classpath = files()
    reports {
        xml {
            destination "build/outputs/reports/checkstyle-results.xml"
        }
    }
    group = JavaBasePlugin.VERIFICATION_GROUP
    description = 'Performs checkstyle verification on the code.'
}

task checkstyleReport(dependsOn: 'checkstyle', group: JavaBasePlugin.VERIFICATION_GROUP)  {
    if (file("build/outputs/reports/checkstyle-results.xml").exists()) {
        ant.xslt(in: "build/outputs/reports/checkstyle-results.xml",
                style: "./config/checkstyle/checkstyle.xsl",
                out: "build/outputs/reports/checkstyle-results.html"
        )
    }
}

同步时收到以下错误消息:

  

失败:构建失败,并出现异常。

     
      
  • 位置:构建文件'/Users/cs/Development/project/app/build.gradle'

  •   
  • 出了什么问题:评估项目':app'时出现问题。

         
        

    在类型为Report xml的参数[build / outputs / reports / checkstyle-results.xml]中找不到方法destination()的方法     org.gradle.api.reporting.internal.TaskGeneratedSingleFileReport。

      
  •   
  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。

  •   
  • https://help.gradle.org

  • 获得更多帮助   
     

在1秒钟内构建失败错误:未找到Gradle DSL方法:“ destination()”   可能的原因:项目“项目”可能正在使用   Android Gradle插件的版本,其中不包含   方法(例如,在1.1.0中添加了“ testCompile”)。升级插件到   版本3.4.0和同步项目

     

项目“项目”可能使用的版本为   不包含方法的Gradle。打开Gradle包装器文件

     

构建文件可能缺少Gradle插件。应用Gradle插件

错误指向以下行:

reports {
        xml {
            destination "build/outputs/reports/checkstyle-results.xml"
        }
    }

destination的语法是否已在gradle中更改?

1 个答案:

答案 0 :(得分:3)

解决方案

reports {
        xml {
            destination file("build/outputs/reports/checkstyle-results.xml")
        }
    }

用于获取Object的方法,但现在需要File类型作为参数-因此出现参数错误。 因此,传递文件可以解决问题。

您可以在此处查看所需的参数类型:

https://docs.gradle.org/current/javadoc/org/gradle/api/reporting/ConfigurableReport.html#setDestination-java.io.File-