Как мы настроим Android Studio для запуска своего линта на каждой сборке?

Когда-то, особенно в Eclipse-land, Lint будет работать на каждой сборке, и, если вы не проведете проверки Lint, вы сразу узнаете. С Android Studio (проверено на 1.3) Lint не запускается по умолчанию в сборке. Новички могут ошибаться, что проверял Линт, но поскольку Lint фактически не запускается, новички не узнают о них.

(IOW, если тест Lint не запускался в лесу, действительно ли тест Lint?)

Комментарии к этому сообщению в блоге показывают, как сортировать sorta, чтобы Lint запускался как часть сборки:

  • Изменить конфигурацию проекта
  • На вкладке "Общие" конфигурации прокрутите вниз и откройте панель "Перед запуском"
  • На этой панели добавьте шаг для "Запустить Gradle Задача" с именем lint для вашего модуля

Однако в этом запуске командной строки Lint, в результате чего на ваш жесткий диск записываются отчеты, написанные на XML и HTML. Это работает, но было бы проще, если бы Android Studio выполнила свои проверки IDE Lint, поэтому результаты отображаются на панели IDE.

Есть ли способ настроить сборку проекта для выполнения проверок IDE в IDE?

Бонусные баллы, если он может быть настроен только на запуск Lint, а не на полный анализ, выполненный Analyze > Inspect Code. Хотя полный анализ иногда полезен, Lint достаточно медленный, так как он, не говоря уже о сомнительно-полезном другом анализе, выполняемом Android Studio (например, проверка орфографии).

При настройке это не будет отличным планом для всех проектов (сканирование Lint медленно), для новичков на Android это может быть подходящий ход.

Ответ 1

Lint должен работать в Android Studio, если вы не настроили его отключением с помощью lintOptions в build.gradle.

Вот из документации, найденной в http://developer.android.com/tools/debugging/improving-w-lint.html#studio

В Android Studio настроены проверки lint и IDE автоматически при создании вашего приложения. Проверка IDE сконфигурирован вместе с проверками lint для запуска проверки кода IntelliJ для оптимизации обзора кода.

Примечание.. Чтобы просмотреть и изменить уровни серьезности проверки, используйте меню Файл > Настройки > Настройки проекта, чтобы открыть страницу "Проверка конфигурации" со списком поддерживаемых проверок.

С Android Studio вы также можете запускать проверки lint для определенного вариант сборки, или для всех вариантов сборки из файла build.gradle. Добавьте свойство lintOptions в настройки android в сборке файл. Этот фрагмент кода из файла сборки Gradle показывает, как установить тихая опция true, а опция abortOnError - false.

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
       }
       ...
}

Чтобы вручную запускать проверки в Android Studio, из приложения или щелкните правой кнопкой мыши меню, выберите Анализировать > Проверить код. Укажите Появится диалоговое окно "Сфера охвата", чтобы вы могли указать желаемый область контроля и профиль.

Вот другие параметры lint, которые вы можете добавить к linkOptions в файле Gradle build.gradle: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Lint-support

Подробнее о android lint: http://developer.android.com/tools/help/lint.html

Используется для добавления задач Gradle после определенных действий в студии Android.

  • Откройте вкладку Gradle в правой части экрана.
  • Выберите свою задачу

Android Studio  Gradle вкладка

  • Щелкните правой кнопкой мыши задачу
  • Выберите действие для выполнения

Действие для выполнения Android Studio

Это должно запустить задачу, когда она была запланирована для выполнения.

Ответ 2

Создать профиль проверки для Android Lint

  • Перейдите в меню Файл → Настройки → Редактор/Инспекция
  • Выберите "Управление" → "Копировать"
  • Дайте ему название "Android Lint Profile" и нажмите Enter
  • Оставьте отмеченные только правила Android Lint на этой вкладке

Android Lint Profile

Теперь вы можете запускать проверку только с помощью правил Android Lint через Analyze- > Inspect Code..., выбрав "Android Lint Profile" .

На следующем шаге дайте Macro (Edit- > Macros- > Start Macro Recording) следующие шаги.

  • Анализировать- > Проверить код...
  • Выберите "Android Lint Profile"
  • Нажмите Enter (важно), чтобы использовать клавиатуру, потому что Macro-рекордер не щелкает мышью по этим окнам)
  • Нажмите "Запустить выбранную конфигурацию" (кнопка зеленого воспроизведения)

Остановите запись макроса и дайте ему имя "Lint and Run".

Последняя вещь, которая должна быть сделана, - это сопоставление "Shift + F10" с нашим макросом. Перейдите в меню Файл- > Настройки...- > Ключ. Найдите наш макрос и измените ярлык.

Масштабирование маппинга

Теперь lint будет запускаться до каждой сборки при нажатии Shift + F10, а результаты будут отображаться на панели Android Studio.

Но это решение имеет один большой недостаток. Если вы запустите свою сборку, нажав кнопку Run, анализ lint не будет выполнен.

Возможно, эта информация будет полезна, и кто-то предоставит лучшее решение, используя ее.

Ответ 3

Одним из возможных (но трудно реализуемых) решений является создание плагина IDEA для этого. Вы можете избежать этого, загрузив плагин из репозитория или код из github. Следующий фрагмент кода будет последовательно выполнять команды "компилировать" и "проверять код".

public class BuildAndLint extends AnAction {
    public void actionPerformed(AnActionEvent e) {
        String[] actions = {"CompileProject", "InspectCode"};
        for(String action: actions) {
            AnAction anAction = ActionManager.getInstance().getAction(action);

            DataContext context = e.getDataContext(); 
            AnActionEvent anActionEvent = new AnActionEvent(null, context, "", anAction.getTemplatePresentation(), ActionManager.getInstance(), 0);

            anAction.actionPerformed(anActionEvent);
        }
    }
}

Код был протестирован и работает в Android Studio 1.3. Он откроет окно, чтобы выбрать, что нужно проверять, а не делать все это.

Ссылки

Исходный код github

Встроенный баннер и линт