2. Система автоматической сборки Gradle
Системы автоматической
сборки
• Сборка на разных платформах
– Windows
– Linux
• Ускорение сборки
• Управление зависимостями проекта
• Автоматическое создание:
– JavaDoc
– Web-страниц проекта
– Отчетов о тестировании
• Непрерывная интеграция
– Автоматизация сборки
– Автоматизированное тестирование
3. Система автоматической сборки Gradle
Apache Ant
• XML-сценарий сборки build.xml
• Императивная настройка сборки
• Проект состоит из целей (target)
• Цели могут зависеть друг от друга
• Цели состоят из вызовов задач (task)
5. Система автоматической сборки Gradle
Apache Maven
• XML-сценарий сборки pom.xml
• Декларативная настройка сборки проекта
• Стандартная структура директорий
• Maven-репозиторий
• Управление зависимостями
• Жизненный цикл проекта (clean, compile,
test, package, install, deploy)
• Плагины для сборки проекта
8. Система автоматической сборки Gradle
Gradle
• Основан на языке Groovy
– Статическая и динамическая типизация
– Замыкания
– Перегрузка операций
– Улучшенный синтаксис Java
• Полноценный DSL
• Направленный ациклический граф задач
• Встроенная поддержка задач Apache Ant
• Императивное описание задачи
• Интеграция с Maven-репозиторием
• Стандартная структура директорий
• Плагины для сборки проекта, настраиваемые декларативно
• Gradle Daemon, Wrapper
12. Система автоматической сборки Gradle
Структура директорий Android
• app/ – директория модуля
• gradle/ – вспомогательная директория Gradle
• gradle/wrapper/ – файлы Gradle Wrapper
• .gitignore –список файлов, игнорируемых Git
• build.gradle – build-скрипт Gradle
• gradlew, gradlew.bat – файлы Gradle Wrapper
• local.properties – путь до Android SDK
• settings.gradle – список модулей проекта
13. Система автоматической сборки Gradle
Структура директорий Android
• app/build/ - директория для хранения результатов
сборки
• app/libs/ – библиотеки
• app/src/ – исходный код проекта
• app/src/main/java – Java-классы
• app/src/main/res – ресурсы
• app/src/main/AndroidManifest.xml – файл Android
Manifest
• app/.gitignore –список файлов, игнорируемых Git
• app/build.gradle – build-скрипт Gradle
• app/proguard.pro – файл настройки ProGuard
14. Система автоматической сборки Gradle
Build Script
• allprojects {}
– Configures this project and each of its sub-projects.
• buildscript {}
– Configures the build script classpath for this
project.
• repositories {}
– Configures the repositories for this project.
• dependencies {}
– Configures the dependencies for this project.
16. Система автоматической сборки Gradle
./build.gradle
• buildscript – настройка build-скрипта Gradle
– repositories – откуда нужно качать зависимости.
– dependencies – какие зависимости нужны. В данном случае
нужен только Gradle-плагин для сборки Android-проектов.
– Этот плагин для сборки регистрируется как зависимость
build-скрипта. Для этого указывается его группа – ‘com.
android.tools.build’, идентификатор в группе – ‘gradle’ и
желаемая версия – ‘0.12.+’.
• allprojects – настройки для всех проектов (т.е. для
каждого модуля)
– repositories – чтобы не указывать в каждом модуле, что его
зависимости можно скачивать из стандартного репозитория
jCentral.
19. Система автоматической сборки Gradle
./app/build.gradle
• apply – применяет к проекту заданный плагин для
сборки. Этот плагин добавляет задачи для сборки,
такие как clean, assemble, build, install и другие. В
данном случае применяется плагин ‘com.android.
application’.
• android – эта секция содержит настройки для плагина
Android.
– compileSdkVersion – версия SDK для компиляции
– buildToolsVersion – версия утилит для сборки APK
– defaultConfig – дополнительные параметры: ID, версия,
minSdkVersion, targetSdkVersion и т. д.
• dependencies – список зависимостей проекта-модуля.