Add lintOptions to the gradle plugin

By adding a lintOptions section to your build.gradle you can now
customize how lint is run with all the same flags available to
the command line runner (except for the flags querying available
lint checks etc).

For example:

android {
  ..
  lintOptions {
    // set to true to turn off analysis progress reporting by lint
    quiet true
    // if true, stop the gradle build if errors are found
    abortOnError false
    // if true, only report errors
    ignoreWarnings true
    // if true, emit full/absolute paths to files with errors (true by default)
    //absolutePaths true
    // if true, check all issues, including those that are off by default
    checkAllWarnings true
    // if true, treat all warnings as errors
    warningsAsErrors true
    // turn off checking the given issue id's
    disable 'TypographyFractions','TypographyQuotes'
    // turn on the given issue id's
    enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
    // check *only* the given issue id's
    check 'NewApi', 'InlinedApi'
    // if true, don't include source code lines in the error output
    noLines true
    // if true, show all locations for an error, do not truncate lists, etc.
    showAll true
    // Fallback lint configuration (default severities, etc.)
    lintConfig file("default-lint.xml")
    // if true, generate a text report of issues (false by default)
    textReport true
    // location to write the output; can be a file or 'stdout'
    textOutput 'stdout'
    // if true, generate an XML report for use by for example Jenkins
    xmlReport true
    // file to write report to (if not specified, defaults to lint-results.xml)
    xmlOutput file("lint-report.xml")
    // if true, generate an HTML report (with issue explanations, sourcecode, etc)
    htmlReport false
    // optional path to report (default will be lint-results.html in the builddir)
    htmlOutput file("lint-report.html")
  }
}

Change-Id: I2c14282165c3c772b7c4e6fbcb2cae978ebd3eb0
15 files changed