androidgitgradlelint

Run Lint from console for only selected files


I am trying to create a custom Git pre-commit hook that checks (using Lint from console, via "gradlew") for possible issues. However, I can't find how to run Lint only in provided files. If I run something like

./gradlew app:lint

Lint analyzes all the project files, and this operation can take quite a bit of time. In this document, there is a "Incremental Lint" section, which covers something similar to what I am looking for. I also found this open issue, that is quite the same as my problem, but seems to be more specific, since it "automatically" retrieves the files to be linted.

To sum up: is it possible to run Lint from command line over a collection of files? Or I am just stucked in running it for the whole project?

Best regards


Solution

  • There is also a dedicated Lint CLI available which allows to check particular directories/files if the file is not part of a gradle project [1].

    Examples:

    lint theDirYouWantToCheck/
    lint orOneParticularFile.xml
    

    With the --check option you are also free to limit the checks which are performed. See lint --help for more information.

    One remark: If you are facing something like...

    main: Error: "main" is a Gradle project. To correctly analyze Gradle projects, you should run "gradlew :lint" instead. [LintError]
    

    ...then it does not appear there is a way to run lint on just a particular file

    1. http://developer.android.com/tools/help/lint.html