2015-09-04 6 views
1

Я использую Android Studio 1.3.2 на Mac.Gradle - Какая задача создает каталог 'build'?

Gradle версия указана в качестве 2.2.1, Android Plugin версии 1.3.1.

Я применил FindBugs Gradle plugin, и я создал задачу, которая успешно выполняет анализ в каталоге «build/intermediates/classes».

Чтобы запустить эту задачу на Gradle синхронизации, я добавил его в качестве зависимости от preBuild задачи, например:

preBuild.dependsOn findBugs 

Проблемы с этой зависимостью является то, что во время preBuild, генерируемая файлы классов либо несуществующие (первая синхронизация), либо устаревшие (оставшиеся от предыдущей синхронизации). В принципе, Я хочу, чтобы моя задача выполнялась сразу после создания каталога «build/intermediates/classes» или когда файлы там обновлены как часть операции «Синхронизация».

Глядя задачи, доступных, я могу видеть «чистая» задача имеет следующее описание:

clean - Deletes the build directory. 

Однако, ни одна из других задач я не вижу описание создания к текущему каталогу. Моя первая мысль была «Ну, это должна быть задача сборки, верно?». К сожалению, как обычно, это не так просто (нажатие кнопки «синхронизация», не запускает мою задачу, когда я добавил ее как зависимость от задачи «сборка»). Нет ли такой задачи? Если да, то какая задача лучше всего подходит, чего я пытаюсь достичь?

ответ

1

Вы можете увидеть все задачи, используя ./gradlew задачи

сборки задача является основной. Он создает все, генерирует APK и запускает все проверки.

Я рекомендую вам добавить следующее в файл build.gradle:

check.dependsOn 'findbugs' 

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

Затем также установить зависимость FindBugs для задачи компиляции:

task findbugs(type: FindBugs, dependsOn: 'compileDebugSources') {...} 

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

+0

Даже при добавлении моей задачи в качестве зависимости для создания или проверки задачи нажатие кнопки «gradle sync» не вызывает мою задачу. Единственная задача, которую я нашел, которая делает это, - preBuild. Но это слишком рано, поскольку каталог build/intermediates/classes еще не добавлен или обновлен. И попытка добавить зависимость к последующим задачам дает мне ошибки. Я надеялся, что есть что-то, что я пропустил, но похоже, что мне придется рассчитывать на запуск при нажатии кнопки «запустить». Наверное, так или иначе. Спасибо за быстрый ответ! – user3829751

+0

Я рекомендую вам попробовать запустить его из командной строки, чтобы проверить разницу. Конфигурация Android Studio иногда может быть немного сложной, но командная строка должна работать. – fhsilva

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